2014-06-10 65 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