actionbar的showAsAction属性问题
2015-08-27 16:04
465 查看
问题
某日根据网上教程编写了一个测试用的activity用来演示actionbar,然而,出了一些问题。menu.xml内容:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/action_compose" android:icon="@drawable/ic_action_compose" app:showAsAction="always" android:title="编辑"/> <item android:id="@+id/action_delete" android:icon="@drawable/ic_action_delete" app:showAsAction="always" android:title="删除"/> <item android:id="@+id/action_settings" android:icon="@drawable/ic_action_setting" app:showAsAction="always" android:title="设置"/> </menu>
activity的代码如下:
package com.app.activities; import android.app.ActionBar; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; /** * Created by Administrator on 2015/8/27. */ public class test_actionbar extends Activity { private ActionBar actionBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test_actionbar); actionBar=getActionBar(); actionBar.show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_test, menu); //return true; return super.onCreateOptionsMenu(menu); } }
界面如下:
不得其解。
后来将menu。xml的showAsAction前缀修改了一下,变成android,如下:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/action_compose" android:icon="@drawable/ic_action_compose" android:showAsAction="always" android:title="编辑"/> <item android:id="@+id/action_delete" android:icon="@drawable/ic_action_delete" android:showAsAction="always" android:title="删除"/> <item android:id="@+id/action_settings" android:icon="@drawable/ic_action_setting" android:showAsAction="always" android:title="设置"/> </menu>
无视报错,继续运行,结果:
但查阅了种种文章,一般解决方案都是app:showAsAction针对的是ActionBarActivity,于是就有了这个:
package com.app.activities; import android.app.ActionBar; import android.app.Activity; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuInflater; /** * Created by Administrator on 2015/8/27. */ public class test_actionbar extends ActionBarActivity { private ActionBar actionBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test_actionbar); actionBar=getActionBar(); actionBar.show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_test, menu); //return true; return super.onCreateOptionsMenu(menu); } }
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/action_compose" android:icon="@drawable/ic_action_compose" app:showAsAction="always" android:title="编辑"/> <item android:id="@+id/action_delete" android:icon="@drawable/ic_action_delete" app:showAsAction="always" android:title="删除"/> <item android:id="@+id/action_settings" android:icon="@drawable/ic_action_setting" app:showAsAction="always" android:title="设置"/> </menu>
一切正常。
相关文章推荐
- Xamarin之TableView
- mysql 函数处理
- C++命名空间
- [转载]C语言随机输出1~20不重复的随机数
- Eclipse下Tomcat插件的安装
- C++开源库大全
- HDU5411——CRB and Puzzle——————【矩阵快速幂优化dp】
- 黑马程序员——IO流
- 项目无用图片查找
- 项目无用图片查找
- C++隐式类型转换 operator
- 用C语言求幂函数和指数函数的方法
- java8 时间操作
- MVC设计模式详解之胖瘦model分析
- Gensim做中文主题模型(LDA)
- Android Eclipse导入Android Sample详解
- java中创建静态常量键值对Map
- 一小时学会用Python Socket 开发可并发的FTP服务器
- iOS网络图片下载到本地
- 字符串编辑距离相似度-动态规划