2011-07-05 65 views
2
Intent intent = new Intent(this,Name.class); 
intent.putExtra("key", et.getText().toString()); 
startActivity(intent); 

Intent intent = getIntent(); 
String str = intent.getStringExtra("key"); 
tv.setText(str); 

從使用上面的代碼我可以得到一個字符串值在其他活動,但我需要editText對象在另一個活動。如何將EditText傳遞給其他活動?

任何人都可以給Idea嗎?

謝謝

+1

爲什麼你需要將'EditText'對象傳遞給另一個'Activity'? –

+2

無法理解人們爲什麼需要EditText對象而不是其值? –

+1

爲什麼你想要將editText傳遞給另一個活動?可以給出適當的理由。 –

回答

5

爲什麼不發送ID然後在接收器Activity上使用findViewByid()?希望這有助於:

Intent intent = new Intent(); 
String name="textView"; 
int value=EditText.getID(); 
intent.putExtra(name, value); 
setResult(RESULT_OK, intent); 

在接收器的活動:

private static final int REQUEST_CODE=1; 
private int id; 
private EditText et; 
private Intent i; 

i = new Intent(this,Name.class); 
startActivityForResult(intent, REQUEST_CODE); 
et = (EditText)findViewById(id); 

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) 
    { 
     if (data.hasExtra("textView")) 
     { 
      //Get the selected file. 
      id = data.getExtras().getInt("textView"); 
     } 
    } 
} 
+0

哦,它很好謝謝很多 –

0

嗯..使用Singleton靜態類可以達到同樣的效果。將參考文件存儲在SingleTon類中的edittext中,並將其返回到另一個活動中,並實現您想要執行的操作。這是在Java中解決您的問題的可能方法之一。

就android SDK而言,您無法將Intent中的視圖obj引用傳遞給另一個活動。

0

好了,儘管所有的破口大罵有關發送EditTextActivity的無用我想說的是可以做到的。例如聲明自己的類擴展EditText,也實現Parcelable接口

public class MyEditText extends EditText implements Parcelable 
{ 
     //a lot of things to be done... 
} 

在這種情況下,你將能夠輕鬆地發送MyEditTextParcelable另一個Activity

Intent intent = new Intent(this,Name.class);  
MyEditText et=new MyEditText(this); 
intent.putExtra("key", et);  
startActivity(intent);  

可以肯定的效用的這種做法是仍然有爭議。

相關問題