這是我的第一篇文章,我在掃描「onBackPressed」和「onKeyDown」問題的「可能提議的」解決方案之後編寫了它。我認爲他們不適合我的問題。onBackPressed未在TabActivity中調用
但是,如果我錯了,讓我知道(對不起,以防萬一)。
好的,這是我的簡單問題。
我有2個activites: 甲:起動機活性(正常活動) B:MainMenu的活性(TabActivity)
飛濺活性(A)做一些初始化東西和一些檢查。如果滿意,它只是調用主菜單Acitvity(B)的意圖。
活動B只是填充4個子活動的tabHost。
好吧,到目前爲止,它都很好。但是
我希望活動B在BACK按鈕上作出反應。它不應該讓用戶回到初始啓動畫面,而應該將應用程序發送到後臺(按下主頁按鈕)。
但是活動B從來沒有對它做出反應。沒有寫入logcat輸出。
這是我的活動B.
public class StartScreenTab extends TabActivity {
private final static String TAG = StartScreenTab.class.getSimpleName();
private MyTabHostWrapper tabHost;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initTab();
}
private void initTab() {
Log.i(TAG, "init Main Tabs...");
tabHost = new MyTabHostWrapper(this);
// tab Start
tabHost.addNewTabSpec("tab-start", R.string.app_name,
R.drawable.ic_tab_start, StartScreen.class);
// tab Karte
tabHost.addNewTabSpec("tab-karte", R.string.umkreis_activity_name,
R.drawable.ic_tab_karte, UmkreisActivity.class);
// tab Liste
tabHost.addNewTabSpec("tab-liste", R.string.liste_activity_name,
R.drawable.ic_tab_liste, ListeActivity.class);
// tab Settings
tabHost.addNewTabSpec("tab-prefs", R.string.menu_settings,
R.drawable.ic_tab_preferences, MyPrefsActivity.class);
tabHost.setFontColor("#FFFFFF");
}
@Override
public void onDestroy(){
Log.i(TAG, "onDestroy called.");
super.onDestroy();
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.i(TAG, "KEY 'back' released");
onBackPressed();
return true;
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.i(TAG, "KEY 'back' pressed");
onBackPressed();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
super.onBackPressed();
Log.i(TAG, "BACK pressed");
moveTaskToBack(true);
return;
}
}
的代碼,我可以看到,從init,並從該的onDestroy輸出logcat中。但是onKeyDown,onKeyUp和onBackPressed都沒有。
你能幫助我嗎?謝謝。