Android操作栏仅显示溢出

时间:2014-05-13 08:41:39

标签: android menu android-actionbar icons

在我的Android应用程序中..我正在尝试使用搜索图标放置搜索编辑文本..但我无法在操作栏中看到搜索图标而不是标题在溢出中看到。我在下面给出了我的代码

活性

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
  <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          android:showAsAction="always"/>
  <item
        android:id="@+id/action_settings"
        android:title="Settings"/>

</menu>

MainActvity

public class MainActivity extends ActionBarActivity 

{

     WebView wv1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);



        wv1 = (WebView) findViewById(R.id.wView1);
        wv1.getSettings().setJavaScriptEnabled(true);
        wv1.loadUrl("http://www.example.com/songs/");




    }

     public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.activity_main_actions, menu);

            return super.onCreateOptionsMenu(menu);
        }
}

3 个答案:

答案 0 :(得分:0)

<德尔> 我认为你必须返回'true`而不是     super.onCreateOptionsMenu(菜单) 在`onCreateOptionsMenu(菜单菜单)`方法中

借口。那是错的。

我认为这个问题与你正在使用的基类有关。你是ActionBarActivity的子类,而不是Activity。这意味着您正在使用以前版本的兼容性。为此,您需要将应用程序的主题设置为Theme.AppCompat(或类似的主题),还包括支持库。看here

答案 1 :(得分:0)

在onCreateOptionsMenu

中使用Search Manager n搜索视图
    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.activity_main_actions, menu);

    // Associate searchable configuration with the SearchView
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView) menu.findItem(R.id.action_search)
            .getActionView();
    searchView.setSearchableInfo(searchManager
            .getSearchableInfo(getComponentName()));

    return super.onCreateOptionsMenu(menu);
}

并在您的main.xml中添加此项以进行搜索

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

答案 2 :(得分:0)

我刚刚意识到如何解决问题!

您的菜单xml文件应该有一个起始标记,如:

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

你可以替换

  

对myApp

使用您想要的任何名称,现在重要的部分是您定义一个操作项时:

<item
    android:id="@+id/actionitem_switch_view"
    android:title="@string/view_as"
    android:showAsAction="always"
    myApp:showAsAction="always"
    android:icon="@drawable/ic_action_view_as_list"/>

您有两个showAsAction标记,一个用于API&lt; 11设备,另一个用于其他设备, 仔细观察两个showAsAction标记是不同的,一个来自Android命名空间,另一个来自您在菜单中定义的标记起点