我剛開始使用Android開發,並遇到問題。我正在嘗試接下來的事情:如何在兩個活動之間傳遞字符串
我有一個Activity1,它有一個按鈕「0」。另外我有Activity2,它有一個TextView和一個OK按鈕。
當我按「0」,我想傳遞一些字符串到Activity2。
當我按0時,Activity2必須打開,並在其中TextView必須顯示我傳遞的字符串。按OK後(在Activity2中),我想回到Activity1。
我試圖做到這一點這樣:
活性1
case R.id.b0:
errorString = "Error: a number can't start with 0";
Bundle basket = new Bundle();
basket.putString("error", errorString);
Intent person = new Intent("my.firsttraining.app.vitali.ERRORPAGE");
person.putExtras(basket);
startActivity(person);
活性2
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
bOK= (Button)findViewById(R.id.bOKonError);
errorDisplay = (TextView)findViewById(R.id.tvError);
bOK.setOnClickListener(this);
setContentView(R.layout.errorpage);
Bundle gotBasket = getIntent().getExtras();
String error = gotBasket.getString("error");
errorDisplay.setText(error); ``
我也試圖做這樣的事情:
活動1
case R.id.b0:
errorString = "Error: a number can't start with 0";
basket = new Bundle();
basket.putString("error", errorString);
person = new Intent("my.firsttraining.app.vitali.ERRORPAGE");
person.putExtras(basket);
setResult(RESULT_OK, person);
finish();
活性2
bOK.setOnClickListener(this);
setContentView(R.layout.errorpage);
}
public void onClick(View v)
{
Intent in = new Intent("my.firsttraining.app.vitali.MENU");
startActivity(in);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK)
{
Bundle gotBasket= data.getExtras();
String err = gotBasket.getString("error");
errorDisplay.setText(err);
}
}
這一切後,我有一個錯誤。點擊按鈕0後,我的應用程序崩潰。我收到以下錯誤。
應用程序意外停止。請再試一次
和帶有「強制關閉」文本的按鈕。我不得不說,我不明白第二種選擇。我剛剛在一些教程中看到它。
請發佈崩潰的logcat輸出。 – 2012-02-01 20:24:11