2013-05-07 30 views
2

我试图将字符串的值传递给我从EditText框中获得的下一个意图。从edittext传递字符串到新的意图给出错误

final EditText et1 = (EditText) findViewById(R.id.editText1); 
final String userid = et1.getText().toString(); 

final EditText et2 = (EditText) findViewById(R.id.editText2); 
final String pass = et2.getText().toString(); 

b1.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) {    
     Intent i= new Intent(Main.this, Main1.class); 
     i.putExtra("userid",userid); 
     i.putExtra("pass",pass); 
     startActivity(i); 
    } 
}); 

在Main1.class我有以下代码...

Intent i= getIntent(); 
String userid = i.getStringExtra("userid"); 
String pass = i.getStringExtra("pass"); 

但我得到一个错误。检查logcat的后,我发现该错误是在这一行:

String userid = i.getStringExtra("userid"); 

我想,我想会错误地收到琴弦虽然我不知道真正的问题是什么。难道我做错了什么?通过意图发送和接收字符串的正确方法是什么?如果还有其他方法,请帮助我。 我的两个类都扩展了Activity并实现了OnClickListener

+0

它看起来正确。你可以发布logcat并验证'userid'不是'null'吗? – codeMagic 2013-05-07 14:31:56

+0

解决了它。正在接收端在OnCreate方法“外部”尝试代码。 – 2013-05-07 14:35:14

回答

3

做这种方式

你应该尝试进去onClickEvent

final EditText et1 = (EditText) findViewById(R.id.editText1); 

final EditText et2 = (EditText) findViewById(R.id.editText2); 

b1.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) {  

     String userid = et1.getText().toString(); 
     String pass = et2.getText().toString();  

     Intent i= new Intent(Main.this, Main1.class); 
     i.putExtra("userid",userid); 
     i.putExtra("pass",pass); 

     startActivity(i); 
    } 
}); 
+0

为什么?不知道为什么这是upvoted。由于'String'被声明为'final',所以OP执行的方式很好 – codeMagic 2013-05-07 14:34:33

0

问题解决了元素。我实际上是在OnCreate方法之外尝试使用该代码。傻我。我只是把它放在OnCreate方法中,它工作。

0

你可以做这样

'final EditText et1 = (EditText) findViewById(R.id.editText1); 

final EditText et2 = (EditText) findViewById(R.id.editText2); 

b1.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) {  

     String userid = et1.getText().toString(); 
     String pass = et2.getText().toString();  

     Intent i= new Intent(Main.this, Main1.class); 
     i.putExtra("userid",userid); 
     i.putExtra("pass",pass); 

     startActivity(i); 
    } 
});' 

而且,收到这样

Intent i= getIntent(); 
String userid = i.get("userid").toString(); 
String pass = i.get("pass").toString(); 

问题是你丢失接收字符串时的toString()后,才可以分配

相关问题