2011-11-16 24 views
1

我有兩個java類,HelloAndroidActivity和GetTasks。我想嘗試從單擊按鈕的第一個活動的「編輯文本」框中獲取文本,並在下一個活動GetTasks中獲取該值並將其顯示在文本視圖中。我的代碼所示:將從EditText框中獲得的值傳遞給下一屏幕中的TextView

HelloAndroidActivity

Button save = (Button) findViewById(R.id.save); 
    save.setOnClickListener(new OnClickListener() { 

     public void onClick (View v) { 

      Intent i = new Intent(HelloAndroidActivity.this, GetTasks.class); 
      //i.setClass(HelloAndroidActivity.this, GetTasks.class); 
      EditText taskname = (EditText) findViewById(R.id.task_name); 
      String task_name = taskname.getEditableText().toString(); 
      Log.d("Task Name", task_name + ""); 
      i.putExtra("taskname", task_name); 
      startActivity(i); 

     } 
    }); 

GetTasks

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_page_layout); 

    CharSequence task_name = (CharSequence) findViewById(R.id.task_name); 
    Log.d("Here", task_name + ""); 

    Intent i2 = getIntent(); 
    taskname = i2.getStringExtra("taskname"); 

    TextView text = (TextView) findViewById(R.id.gettaskname); 
    text.setText(taskname); 


}  

你能告訴我什麼我做錯了嗎?我的應用程序部隊自行關閉。而不是傳遞一個變量,如果我傳遞一個字符串變量,我能夠在文本視圖中看到?它是否與清單文件有關?我有兩個活動的意圖。任何關於這方面的幫助將不勝感激

+0

哪行導致力閉合? –

+1

請從日誌中發佈堆棧跟蹤。並使用註釋或其他內容來突出顯示哪些代碼行導致異常被拋出。如果您認爲該問題可能存在,則發佈清單文件也可能會有所幫助。 – FoamyGuy

+0

什麼視圖類型是'task_name'?你爲什麼把它投到「CharSequence」? –

回答

2

我相信行

CharSequence task_name = (CharSequence) findViewById(R.id.task_name);

是最有可能的罪魁禍首。 CharSequence應替換爲任何類型的視圖task_name元素...

+0

這是堆棧跟蹤。 – user1048684

+0

以下是堆棧跟蹤: 11-15 20:19:00.298:E/AndroidRuntime(279):致命例外:主 11-15 20:19:00.298:E/AndroidRuntime(279):java.lang。 ClassCastException:android.widget.TextView 11-15 20:19:00.298:E/AndroidRuntime(279):\t at com.example.helloandroid.HelloAndroidActivity $ 3.onClick(HelloAndroidActivity.java:67) – user1048684

0

而不是(CharSequence),使用(EditText),這是您正在檢索數據的佈局對象的類型,如定義您的佈局XML文件。


在你GetTasks.onCreate方法,你需要在你從HelloAndroidActivity意圖傳遞的值帶來。

你是這樣做的:

Bundle extras = getIntent().getExtras(); 
if (extras ==null) { return;} 
String taskname = extras.getString("taskname"); 

請參見以下鏈接一個good tutorial on using intents

+0

它仍然在打破同一點。 – user1048684

相關問題