2014-06-10 62 views
1

我想在操作欄上顯示一個圖標。但它總是出現在溢出列表中。你能幫我解決問題嗎?這是我的代碼。Android動作按鈕沒有顯示在操作欄中

CreateScheduleActivity.java

package com.mpeers.ui; 

import android.support.v7.app.ActionBarActivity; 
import android.support.v7.app.ActionBar; 
import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.os.Build; 

    public class CreateScheduleActivity extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.create_schedule); 


} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.action_bar, menu); 
     return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
    } 

action_bar.xml在菜單文件夾

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

    <!-- Search, should appear as action button --> 
    <item android:id="@+id/action_search" 
      android:icon="@drawable/plusicon" 
      android:title="CS" 
      android:showAsAction="ifRoom" /> 
    <!-- Settings, should always be in the overflow --> 
    <item android:id="@+id/action_settings" 
      android:title="@string/action_settings" 
      android:showAsAction="never" /> 


</menu> 
+1

嘗試這個'app:showAsAction =「總是」' –

+0

我改變它總是,但沒有改變 – abhay123

回答

1

父標籤定義xmlns:app="http://schemas.android.com/apk/res-auto"

然後使用app:showAsAction="ifRoom"

以下是示例代碼。

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

     <item 
      android:id="@+id/action_search" 
      android:icon="@drawable/ic_action_search" 
      android:title="@string/action_search" 
      app:actionViewClass="android.support.v7.widget.SearchView" 
      app:showAsAction="ifRoom"/> 
     <item 
      android:id="@+id/action_right_drawer" 
      android:icon="@drawable/ic_action_play_over_video" 
      android:title="@string/action_right_drawer" 
      app:showAsAction="ifRoom"/> 

    </menu> 
+0

我試過這個,但它沒有顯示在操作欄 – abhay123

+0

你使用哪個主題?程序兼容性? –

+0

我正在使用appcompat – abhay123

2

如果您正在使用的程序兼容性支持庫,你需要定義

的xmlns:程序= 「http://schemas.android.com/apk/res-auto」

,然後使用app:showAsAction來控制操作項目的可見性。

如果您未使用appcompat支持庫,則可以使用android:showAsAction標記來控制操作項目的可見性。

+0

+1,如果您未使用支持庫,則建議使用android:showAsAction替換app:showAsAction。這對我來說很有用。 – JDenais