我在Android應用程序,活動A和活動B中有兩個活動。活動A通過一個Intent觸發活動B,然後當我在活動B中時,這是一個listView我點擊一個特定項目並在回到活動A時使用putExtras()作爲我的意圖的一部分將數據傳回給活動A.Android中的意圖問題
我遇到的問題是,當我從listView中選擇要傳回的項目時到活動一個應用程序崩潰,但是當我使用一個正常的意圖,它不跨活動傳遞任何數據,它工作正常。
下面的代碼演示了我正在嘗試做什麼。
活動A
public class ActivityA extends Activity {
private String myString;
@Override
protected void onCreate(Bundle savedInstanceState)
{
Button selectEvent = (Button) findViewById(R.id.events);
myString = savedInstanceState != null ? savedInstanceState.getString("myKey"):null;
if(myIntentString == null)
{
Bundle extras = getIntent().getExtras();
myString = extras != null ? extras.getString("myKey"):null;
}
selectEvent.setText(myString);
selectEvent.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(ActivityA.this, ActivityB.class);
ActivityA.this.startActivity(myIntent);
}
});
}
}
public class ActivityB extends ListActivity
{
private String selection;
private final int SECONDARY_ACTIVITY_REQUEST_CODE = 0;
String[] listOfNames = {"Peter", "Paul", "John"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.events);
setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, listOfData));
}
protected void onListItemClick(ListView l, View v, int position, long id)
{
selection = l.getItemAtPosition(position).toString();
Intent myIntent = new Intent(getApplicationContext(), ActivityA.class);
myIntent.putExtra("myKey", selection);
startActivityForResult(myIntent, SECONDARY_ACTIVITY_REQUEST_CODE);
}
}
你的幫助將非常感激,謝謝。
退房與logcat的日誌。聽起來像一個空指針。 – 2011-03-31 02:43:09
我也投注空指針。如果你可以發佈日誌,也許我們可以確切地知道它發生了什麼。 – 2011-03-31 02:44:52
我在Activity A中看不到'onActivityResult'。不能用這種方法做這件事。 – user432209 2011-03-31 03:10:57