1

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

这是我的main_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;
        }
    }

}

这是我的main_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>

请帮助我无法弄清楚出了什么问题!

4

3 回答 3

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 框架中不存在。因此,您必须使用自己的命名空间作为支持库定义的所有属性的前缀。

于 2014-06-24T11:14:01.823 回答
0

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

<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>

而已...

于 2014-06-24T11:31:14.133 回答
0

将您的 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>
于 2014-06-24T11:15:02.987 回答