2016-12-26 21 views
1

我沒有自定義欄,我只是將一個刪除圖標設置爲操作欄,但現在我需要將OnClickListener設置爲此圖標。我怎麼能這樣做,沒有自定義欄是可能的。此外,左側的圖標不能顯示,我可以在右側進行設置嗎?將圖標添加到分段操作欄並獲取對它的引用

activity.getSupportActionBar().setIcon(R.drawable.ic_delete); 

我使用導航抽屜,當我使用自定義欄的切換圖標絕望。

回答

0

看起來要設置ActionBar的home鍵爲您的刪除按鈕。我建議不要這樣做,因爲在我看來這是一個糟糕的設計決定。此外,您還希望通過使用菜單以直觀的方式顯示右側的按鈕。

請看看官方文件建立添加動作條行動here

基本上你需要添加一個XML菜單資源,並宣佈自己的行爲是這樣的:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/action_delete" 
     android:icon="@drawable/ic_delete" 
     android:title="@string/action_delete" 
     app:showAsAction="always"/> 

</menu> 

然後在你的活動覆蓋OnOptionsItemSelected方法:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.action_delete: 
      // Do your stuff here 
      return true; 

     default: 
      return super.onOptionsItemSelected(item); 

    } 
} 
+0

該圖標僅適用於fragmet。 –

+0

我已經修改了我的答案,現在應該更清楚了:) –

0
actionBar.setDisplayHomeAsUpEnabled(true); 

然後,你需要重寫活動方法:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     onIconClicked(); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

要在右側創建一個項目,你需要創建自定義菜單,其實,這很簡單。

Here是例子,如何做到這一點

相關問題