2014-03-19 51 views
1

我有兩項活動,主要活動和列表活動。我總是希望在主要活動中顯示一個菜單,因爲沒有其他地方可以去了。Google玻璃關閉二級活動關閉應用程序

主要活動有這樣的代碼:

@Override 
public void onOptionsMenuClosed(Menu menu) { 
    // Nothing else to do, closing the activity. 
    finish(); 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    openOptionsMenu(); 
} 

當我關閉名單的活動,我的整個應用程序關閉 - 其由於我的MainActivity的onOptionsMenuClosed方法,真的很困惑,爲什麼是這樣的話,當ListActivity已關閉我只想回到菜單。

+0

我看到你發佈的3月19日。你有沒有找到解決方案?我遇到了同樣的問題。謝謝 ;) –

回答

0

我有同樣的問題,解決它像這樣:

public class StartActivity extends Activity{ 
private boolean cancel = true; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_start); 
} 

@Override 
public void onAttachedToWindow() { 
    super.onAttachedToWindow(); 
    openOptionsMenu(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.startmenu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == R.id.Item1){ 
     cancel = false; 
     Intent intent = new Intent(this, ActivityA.class); 
     startActivityForResult(intent, 0); 
     return true; 
    } 
    else if(id == R.id.Item2){ 
     cancel = false; 
     Intent intent = new Intent(this, ActivityB.class); 
     startActivityForResult(intent, 0); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == 0) { 
     if (resultCode == RESULT_CANCELED) { 
      openOptionsMenu(); 
      cancel = true; 
     } 
    } 
} 

@Override 
public void onOptionsMenuClosed(Menu menu) 
{ 
    super.onOptionsMenuClosed(menu); 
    if(cancel){ 
     finish(); 
    } 
} 

}