我有兩個活動,我想從第一個上下文菜單中調用第二個活動。這是它應該做的。從上下文菜單啓動新的活動並自動執行onCreate中的其他Activity重新啓動相同的活動
活動上下文菜單點擊應當取決於傳入的額外啓動活動B.
在活動B的OnCreate,自動顯示一個對話框AlertBuilder,然後或者拍照或選擇圖片。
發生的事情是,當Activity A的上下文菜單項被點擊時,它會啓動Activity B並顯示AlertDialog。如果我選擇拍攝照片的選項,則啓動MediaStore.ACTION_IMAGE_CAPTURE意圖,拍攝照片後,再次重新啓動活動B並顯示AlertDialog。
活動A - 右鍵菜單
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
final ItemClass selItem = (ItemClass)this.getListView().getItemAtPosition(info.position);
Intent intent;
SyncData sync;
switch (item.getItemId()) {
case R.id.start_activity_b:
Intent intent = new Intent(ActivityA.this, ActivityB.class);
intent.putExtra("data1", selItem.itemID);
intent.putExtra("data2", "AUTO");
Measurements.this.startActivityForResult(intent, REQUESTCODE_ACTIVITYB);
return true;
default:
return super.onContextItemSelected(item);
}
}
活動B - 的onCreate代碼
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.listview_main);
Bundle extras = getIntent().getExtras();
if ((extras != null) && (extras.containsKey("data1"))) {
this.itemID = extras.getString("data1");
}
if ((extras != null) && (extra.containsKey("data2"))) {
this.createAlertDialog();
}
}
這裏你不需要'runnable'。既然你正在使用'startActivityForResult()',你應該可以調用'setResult'並在'Dialog'解除時完成'ActivityB' – codeMagic