2013-05-07 42 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()後,纔可以分配

相關問題