Android代码:我正在尝试将字符串值从一个页面传递到另一个页面

时间:2013-03-08 18:08:05

标签: android

我无法理解其中的问题在哪里,并且无法执行该应用程序

进一步说明他们是我的代码

CODE: PASS1: -

public class Pass1 extends Activity {

    EditText pno=(EditText)findViewById(R.id.editText1);
Button btn=(Button)findViewById(R.id.button1);
String pn=pno.getText().toString();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pass1);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(pn.charAt(0)=='9' || pn.charAt(0)=='8' || pn.charAt(0)=='7')
            {
                if (pno.getText().toString().length()==10)
                {
                 Intent i= new Intent(Pass1.this, Pass2.class);
                        i.putExtra("phoneno", pn);
                                startActivity(i);                   
                }
        }
        else
            pno.setError("The entered number is invalid!!");


            }               
        });
    }
}

PASS2: -

public class Pass2 extends Activity {

EditText codetxt=(EditText)findViewById(R.id.editText1);

String ph=codetxt.getText().toString();

Button codebtn=(Button)findViewById(R.id.button1);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent i = getIntent();
        final String phn = i.getStringExtra("phoneno");


setContentView(R.layout.activity_pass2);
            codebtn.setOnClickListener(new View.OnClickListener() {

                @Override


public void onClick(View v) {
                // TODO Auto-generated method stub
                if(ph.charAt(0)==phn.charAt(0) && ph.charAt(1)==phn.charAt(5) && ph.charAt(2)==phn.charAt(4) && ph.charAt(3)==phn.charAt(9))
                {
                    if( codetxt.getText().toString().length()==4)
                    {
                        //code.setError("right number");
                        Intent i=new Intent(Pass2.this,Pass3.class);
                        startActivity(i);
                    }
                }
                else
                    codetxt.setError("Entered Code is wrong!"); 
            }
        });
    }
}

3 个答案:

答案 0 :(得分:2)

移动此代码

 EditText pno=(EditText)findViewById(R.id.editText1);
Button btn=(Button)findViewById(R.id.button1);
String pn=pno.getText().toString();  

在setContentView()行之后的onCreate()里面。对于Pass2也是如此

答案 1 :(得分:0)

在您当前的活动中,创建一个新的意图:

Intent i = new Intent(getApplicationContext(), NewActivity.class);
i.putExtra("new_variable_name","value");
startActivity(i);

然后在新的Activity中,检索这些值:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String value = extras.getString("new_variable_name");
}

在你的情况下

Bundle extras = getIntent().getExtras();
        final String phn = extras.getString("phoneno");

答案 2 :(得分:0)

您应该在findViewById()

之后使用setContentView()