2011-05-08 95 views
0

我有以下代碼:得到編輯文本的文本和文本視圖寫

public class Activity2 extends Activity { 
    /** Called when the activity is first created. */ 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.accounted); 

     TextView tv1 = (TextView) findViewById(R.id.textView1); 
     EditText et1 = (EditText) findViewById(R.id.editText1); 
     String text1 = et1.getText().toString(); 

當我註釋掉「字符串文本1 ...」行程序工作。但如果我取消註釋,應用程序部隊就會關閉。

TextView(tv1)位於當前頁面上,但EditText(et1)位於另一頁面上。這可能是我的問題的原因?我如何解決它?

回答

0

如果EditText在不同的xml中,那麼就不要使用它。 在您的xml中添加EditText或將其從源代碼中刪除。

+0

謝謝,但我必須使用它。從另一個頁面獲取它,並且我必須在另一個頁面中顯示它。 – mucisk 2011-05-08 15:31:57

+0

然後使用Intent將值從一個頁面傳遞到另一個頁面。請參閱http://stackoverflow.com/questions/2091465/how-to-pass-data-between-activities-in-android – 2011-05-08 15:34:20

2

您不能訪問從另一個activty TextView的,你應該使用意圖提供

例如TextView的價值傳遞給第二個活動在How do I pass data between Activities in Android application?

+0

好吧,我可以發送數據,但它不告訴我如何獲得其他活動中傳遞的數據。你能告訴我如何? – mucisk 2011-05-08 15:42:05

+0

在第二個活動中調用Bundle extras = getIntent()。getExtras();從這個Bundle中你可以提取數據 – matsjoe 2011-05-08 19:39:00

0

這是你的代碼...... .............

public class Activity2 extends Activity { 
/** Called when the activity is first created. */ 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.accounted); 

    TextView tv1 = (TextView) findViewById(R.id.textView1); 
    EditText et1 = (EditText) findViewById(R.id.editText1); 
    String text1 = et1.getText().toString(); 

至於如何讓你有edittext在另一個活動。 所以在你的TextView獲取文本,你必須做一些修改 我顯示它希望這將工作

首先添加的EditText在你當前活動中TextView的是

editText t1; 

此分配後這EDITTEXT另一個活動的EditText上

t1=secondactivity.edittext id; 

現在簡單地得到該文本並在您的TextView

設置
String text1 = et1.getText().toString(); 
text1.setText(et1.getText().toString()); 
0
public class Activity2 extends Activity { 
     /** Called when the activity is first created. */ 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.accounted); 

      TextView tv1 = (TextView) findViewById(R.id.textView1); 
      EditText et1 = (EditText) findViewById(R.id.editText1); 
      String text1 = et1.getText().toString(); 

這是你的代碼。你有EDITTEXT另一個動作就是爲什麼crashes.If你想從上次活動獲得的EditText的文本上TextView的你將有以下行添加到設置應用代碼,其中Intent用於更改活動。

Intent.putextra("string1",et1.getText().toString()); 
    StartActivity(Intent); 

這一定會爲你工作。