【问题标题】:Android action buttons in action bar not appearing?操作栏中的Android操作按钮没有出现?
【发布时间】:2014-06-24 11:11:24
【问题描述】:

我想在操作栏中创建一个添加按钮,但是当我运行代码时它似乎没有出现。

这是我的 ma​​in_activity.java

public class MainActivity extends ActionBarActivity {

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




        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment()).commit();
        }
    }

    @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_activity_actions, menu);
            return super.onCreateOptionsMenu(menu);
    }

    @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_add) {

            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    /**
     * A placeholder fragment containing a simple view.
     */
    public static class PlaceholderFragment extends Fragment {

        public PlaceholderFragment() {
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container,
                    false);
            return rootView;
        }
    }

}

这是我的 ma​​in_activity_actions.xml

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

    <item android:id="@+id/action_add"
          android:icon="@drawable/ic_add"
          android:title="Add"
          android:showAsAction="always"
           />

</menu>

请帮忙 我不知道怎么了!

【问题讨论】:

  • 它是否出现在溢出菜单中?
  • 没有。溢出菜单的 3 个点也没有显示

标签: android android-actionbar action-menu


【解决方案1】:

由于您的 Activity 扩展了 ActionBarActivity,您将使用支持库中的 AppCompat。

所以改成

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    <item android:id="@+id/action_add"
      android:icon="@drawable/ic_add"
      android:title="Add"
      yourapp:showAsAction="always"
       />
    ...
</menu>

引用文档

请注意,上面的 showAsAction 属性使用自定义命名空间 标签中定义。这在使用任何 XML 时都是必需的 支持库定义的属性,因为这些属性确实 旧设备上的 Android 框架中不存在。所以你必须使用 您自己的命名空间作为由 支持库。

【讨论】:

  • 没问题。添加命名空间后,它工作正常。
【解决方案2】:

把你的 menu_xml 改成这个:-

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

    <item
        android:id="@+id/action_add"
        android:clickable="true"
        android:icon="@drawable/ic_add"
        android:showAsAction="always"
        android:title="action_location_found">
</menu>

【讨论】:

  • 为什么?你在哪里得到概率?它在马边运行良好
  • @user3243147 这不会改变任何东西。这与 op 发布的内容几乎相同
【解决方案3】:

用下面的菜单文件替换你的菜单文件

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    style="@style/Theme.AppCompat.Light"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="yourpackagename.Mainactivity" >



<item android:id="@+id/action_add" 
  android:icon="@drawable/add_plush" app:showAsAction="always"></item>
</menu>

就是这样……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多