ActivityGroup을 사용하는 데 문제가 하나 있습니다. ActivityGroup 내부에 두 개의 액티비티가 있으며 두 개 모두 메뉴를 사용합니다 (onCreateOptionMenu 및 onOptionsItemSelected 재정의).Android 활동 그룹 - 두 번째 활동은 항상 첫 번째 활동 메뉴를 표시합니다.
두 활동에는 서로 다른 메뉴가 있습니다.
음, 문제는이 문제에 대한
어떤 생각, 두 번째 활동은 항상 첫 번째 활동 메뉴를 표시한다는 것입니다? 당신은 활동, "현재"활동이 마지막이 추가 된 것입니다을 추가 할 때
다음은 내 코드
public class myActivityGroup extends ActivityGroup {
----
public void startChildActivity(String Id, Intent intent) {
Window window = getLocalActivityManager().startActivity(Id, intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
if (window != null) {
mIdList.add(Id);
View view = window.getDecorView();
history.add(view);
setContentView(view);
}
}
public void back() {
if (history.size() > 0) {
int lastActivityIndex = history.size() - 1;
int lastIDIndex = mIdList.size() - 1;
String activityId = mIdList.get(lastIDIndex);
Log.d(TAG, "activityId:" + activityId);
history.remove(lastActivityIndex);
mIdList.remove(lastIDIndex);
setContentView(history.get(history.size() - 1));
} else {
finish();
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
Activity current = getLocalActivityManager().getCurrentActivity();
return current.onPrepareOptionsMenu(menu);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
LocalActivityManager manager = getLocalActivityManager();
Activity current = manager.getCurrentActivity();
return current.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
LocalActivityManager manager = getLocalActivityManager();
Activity current = manager.getCurrentActivity();
return current.onOptionsItemSelected(item);
}
}
public class ChildActivity1 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//add menu here
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.settings_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//handle on menu item selected here
return true;
}
}
public class ChildActivity2 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//add menu here
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.offer_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//handle on menu item selected here
return true;
}
}
나는 해당 게시물에서 모양과 내가 위의 내 코드에 어떤 다른 찾을 수 없습니다, 당신은 어떤 스턱을 실례를 도와주세요 수 있습니다 지금. – Sam
'offer_menu.xml'과'settings_menu.xml '이 같지 않은지 다시 한번 확인하십시오. –
offer_menu.xml에는 하나의 메뉴 항목이 있고 settings_menu.xml 메뉴에는 두 개의 메뉴 항목이 있습니다. 둘 다 동일하지 않습니다; ( – Sam