2014-04-01 31 views
1

我想將動作添加到動作欄,但它會作爲下拉列表出現在我的動作欄中。 如何將按鈕添加到操作欄? 我的代碼是:將動作添加到動作欄面板

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@+id/action_search" 
     android:icon="@drawable/ic_action_search" 
     android:title="Add" 
     showAsAction="ifRoom"/> 
</menu> 

    @Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main, menu); 
    return super.onCreateOptionsMenu(menu); 
} 
+0

你是指向當前的xml文件? –

回答

4

如果您正在使用android.app.Activity簡單地改變showAsAction="always""android:showAsAction="always"這就是。

如果您正在使用android.support.v7.app.Activity變化的代碼如下:

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

    <item android:id="@+id/action_search" 
     android:icon="@drawable/ic_action_search" 
     android:title="Add" 
     app:showAsAction="ifRoom"/> 
</menu> 
+0

不,它對我沒有幫助 –

+0

你使用'android.support.v7.app.ActionBarActivity'或'android .app.Activity'? – EdmDroid

+0

我使用android.support.v7.app.ActionBarActivity –

-1

您只需簡單的添加多一個項目到菜單和膨脹該菜單爲您的活動.... 像下面您可以添加按鈕,並訪問按鈕到您的活動.. 。

<?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android" > 

     <item 
      android:id="@+id/refresh" 
      android:icon="@android:drawable/stat_notify_sync" 
      showAsAction="ifRoom"/> 
     <item 
      android:id="@+id/action_bar_button_cancel" 
      android:focusableInTouchMode="true" 
      android:icon="@android:drawable/ic_menu_close_clear_cancel" 
      showAsAction="ifRoom"/> 

    </menu> 

充氣像下面的菜單.....

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

在訪問動作欄項目的方法是....

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     case R.id.refresh: 
          //logic  
      return true; 
       case R.id.action_bar_button_cancel: 
          //logic  
         return true; 

     default: 
      return super.onOptionsItemSelected(item); 
     } 
    } 

,如果您有任何疑問,意見

+1

但爲什麼我不能只添加一個按鈕? –

+0

您可以添加一個按鈕,也可以只添加單個項目... –

+0

我已經添加了一個項目,但它不幫助我 –