簡體   English   中英

使用ActionBarSherlock向ActionBar添加按鈕

[英]Adding a button to the ActionBar with ActionBarSherlock

我一直在嘗試向SherlockActionBar添加一個按鈕,但我無法讓它工作。

這是我的代碼:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        android.view.MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, (android.view.Menu) menu);
        return super.onCreateOptionsMenu(menu);
    }

這是我的menu.xml代碼:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/save_button"
          android:title="i"
          android:showAsAction="always" />
</menu>

這不起作用,因為即使我按下菜單按鈕,也沒有任何顯示。 還有其他方法嗎? 我犯了什么錯嗎?

您正在使用Android的Menu和MenuInflater,但應該使用ActionBarSherlock附帶的類:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
   com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
   inflater.inflate(R.menu.menu, (com.actionbarsherlock.view.Menu) menu);
   return super.onCreateOptionsMenu(menu);
}

看起來你現在正在混淆兩者。 確保只導入com.actionbarsherlock.view.Menu和com.actionbarsherlock.view.MenuInflater,而不導入其Android版本。 我建議你做以下事情:

import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;

...

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
       MenuInflater inflater = getSupportMenuInflater();
       inflater.inflate(R.menu.menu, menu);
       return super.onCreateOptionsMenu(menu);
    }

我想在menu.xml中。 您的項目未完全聲明android:showAsAction屬性。 你必須這樣聲明:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/save_button"
          android:title="i"
          android:showAsAction="always|withText" />
</menu>

由於您沒有為項目操作欄指定任何圖標,因此無法顯示任何項目。 默認情況下,圖標顯示為文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM