2015-12-27 89 views
1

動作條我需要幫助搞清楚控制動作條的正確途徑。將項目添加到正確

在的onCreate函數I加入:

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
getSupportActionBar().setCustomView(R.layout.actionbar); 

並補充actionbar.xml到佈局文件夾在它3項:TextView的(應用程序的名稱)和2個ImageViews。

它的工作原理,我的意思是,我可以看到這個新的動作條,但我敢肯定,我做了錯誤的方式,在教程即時閱讀他們談論加入這些項目的menu.xml文件文件,我無法找到,並使用onOptionsItemSelected函數來設置行爲。

由於我是一個初學者,希望得到的是什麼,我做的,爲什麼這是錯的,以及如何與menu.xml文件

+2

你說約兩分開的東西。 menu.xml文件用於菜單項,它顯示在ActionBar的右側。 –

+1

@DanielNugent是正確的,我的意思是你正在合併兩個不同的東西 – piotrek1543

+0

以及我的目標是調整動作條,因爲我的手機語言是從右到左我找到了解決辦法通過創建這個actionbar.xml和指定的layoutDirection,現在我想添加按鈕,但顯然做錯了。我希望它能澄清我想要做的事情。謝謝! – gga

回答

2

好正確的做一個解釋,首先你是對的,安卓有一個開箱即用的解決方案,以把「動作按鈕」和標題操作欄

1.Title

當你創建一個活動,它會添加一些代碼到您的AndroidManifest.xml,這裏是的例子:

<activity 
     android:name="AddAddressActivity" 
     android:label="@string/title_activity_add_address" > 
    </activity> 

,所以你通過改變機器人在這裏您可以更改標題:標籤,最好的做法是,你需要把你所有的字符串資產下RES /價值/ string.xml這樣

<string name="title_activity_add_address">Add New Address</string> 
  • 操作按鈕
  • 首先添加此重寫方法,以你的活動

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
        // Inflate the menu; this adds items to the action bar if it is present. 
        getMenuInflater().inflate(R.menu.address_list, menu); 
        return true; 
    } 
    

    後來,爲您打造下RES /菜單文件夾address_list.xml和內它,你可以把你的動作按鈕列表中有

    <menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.vi8e.giant.AddressListActivity"> 
    <item 
        android:id="@+id/action_add" 
        android:orderInCategory="100" 
        android:showAsAction="always" 
        android:icon="@drawable/ic_action_new" 
        android:title="@string/action_save"/> 
    

    安卓:標題是把你的菜單標題,這個標題會顯示出來,當你長按菜單 安卓:這裏的圖標是要顯示菜單,把下水庫圖像圖像/繪製

    編輯:忘了提及如何觸發你的菜單 你可以把onOptionsItemSelected方法您的活動,這裏是例子

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
        switch (item.getItemId()) { 
    
        case R.id.action_add: 
         //do something 
         break; 
        default: 
         break; 
        } 
        return super.onOptionsItemSelected(item); 
    } 
    

    注:操作欄具有有限的空間ammount的,所以如果你有很多的菜單,將摺疊成「三個點」圖標,在右上角

    +0

    感謝理查德詳細的答案,它的工作原理,但有一個問題 - 在我做的actionbar.xml中,我可以添加 - android:layoutDirection =「ltr」,因爲我的手機在這個新的menu.xml中顯示了一切「rtl」文件我不能添加這個(我可以,但它什麼都不做),所有的圖標都顯示在這些「三個點」。我怎樣才能解決這個問題? – gga

    +0

    好吧我改變了android:supportsRtl =「true」到android:supportsRtl =「false」 現在它是從左到右的,但所有的項目仍然在3個點(即使我只使用1個項目,所以有空間)爲什麼會發生這種情況? – gga

    +1

    好的,謝謝我修好了。在AndroidManfiest.xml中的, 和menu.xml - android:showAsAction =「always」中更改爲app:showAsAction =「always」時,android:supportsRtl =「true」變爲android:supportsRtl =「false」 「,現在它的工作。再次感謝! – gga