0

我想聲明一個活動我應用的「主頁」活動。現在,我可以設置主按鈕的每個活動使用在操作欄中爲所有活動設置主頁按鈕的默認操作

public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == android.R.id.home) { 
     Intent i = new Intent(getApplicationContext(), 
       HomeScreen.class); 
     i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(i); 
    } 
    return true; 
} 

我已經聲明使用

<activity 
     android:name=".HomeScreen" 
     android:label="@string/app_name" 
     android:theme="@style/Theme.Sherlock" > 

      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.HOME" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
</activity> 

我也能使用

動作條的showHome選項清單我家活動的行動
<style name="ActionBarCustom" parent="@style/Widget.Sherlock.ActionBar"> 
    <item name="android:displayOptions">showHome|showTitle</item> 
    <item name="displayOptions">showHome|showTitle</item> 
    <item name="android:logo">@drawable/arrow_icon</item> 
</style> 

現在,當我點擊我從沒有指定地方已經活動我的home鍵

getSupportActionBar().setHomeButtonEnabled(true); 

具體而言,它不顯示按鈕已被點擊的指示。我需要我的主頁按鈕的默認操作。如果我是對的,我知道我錯過了一件很小的事情。我已經經歷了很多堆棧溢出& developer.android,但都是徒勞的。任何人都可以幫忙嗎? 我想爲主頁按鈕設置默認操作。

另外我還可以使用showCustom但同樣我想定義爲其他按鈕默認動作要設置自定義操作欄(我想在動作欄中設置)在一個地方,而不是指定它在每個活動中)。

(我測試在Android 2.2)。

回答

0

你錯過

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
+0

哦,不!這段代碼工作得非常好(我在我的問題中發佈的那個)。但是,這是針對一項活動,而我想爲我的所有活動定義一項默認操作。 –

+0

&現在看來它沒有任何其他解決方案,除了創建基本活動,然後從基本活動擴展所有其他活動。 :/ –

+0

Btw使用homeAsUp引用[this](http://developer.android.com/reference/android/app/ActionBar.html#DISPLAY_HOME_AS_UP) –

0

創建活動稱之爲BaseActivity。

現在派生所有活動,你想要的功能和覆蓋onOptionsItemSelected那裏