첫 번째 컨텍스트 메뉴에서 두 번째 활동을 호출하려는 두 가지 활동이 있습니다. 이것이해야 할 일입니다.컨텍스트 메뉴에서 새 활동을 시작하고 onCreate에서 다른 활동을 자동화하면 같은 활동이 다시 실행됩니다.
활동 상황에 맞는 메뉴를 클릭하면 자동으로 전달 된 엑스트라에 따라 활동 B. 활동 B의에서 onCreate에서
를 시작할 AlertBuilder 대화 상자를 표시하고 다음 중 하나를 사진을 촬영하거나를 선택해야합니다 영상.
활동 A의 컨텍스트 메뉴 항목을 클릭하면 활동 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()'를 사용하고 있기 때문에,'Dialog'가 닫힐 때'setResult'를 호출하고'ActivityB'를 끝낼 수 있어야합니다 – codeMagic