您的位置:首页 > 移动开发 > Android开发

android之actionbar 入门

2015-11-19 22:06 309 查看

在menu下新建一个actionbar.xml文件,或者直接用下边的main.xml,然后输入代码

 <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item 
       android:id="@+id/calendar"
        android:icon="@drawable/calendar48"
        android:showAsAction="always"
        />
    <item
       android:id="@+id/search"
        android:title="@string/search"
        android:icon="@drawable/search48"
        
        android:showAsAction="always"
        />
    <item 
        android:id="@+id/setting"
        android:title="@string/setting"
       
        android:showAsAction="never"
        />
</menu>
[/code]

ifRoom 会显示在Item中,但是如果已经有4个或者4个以上的Item时会隐藏在溢出列表中。当然个
数并不仅仅局限于4个,依据屏幕的宽窄而定
never 永远不会显示。只会在溢出列表中显示,而且只显示标题,所以在定义item的时候,最好
把标题都带上。
always 无论是否溢出,总会显示。
withText withText值示意Action bar要显示文本标题。Action bar会尽可能的显示这个
标题,但是,如果图标有效并且受到Action bar空间的限制,文本标题有可
能显示不全。
   collapseActionView   声明了这个操作视窗应该被折叠到一个按钮中,当用户选择这个按钮时,这个操作视窗展开。否则,
这个操作视窗在默认的情况下是可见的,并且即便在用于不适用的时候,也要占据操作栏的有效空间。
一般要配合ifRoom一起使用才会有效果。

 

接着在重写Activity的onCreateOptionsMenu()方法,代码如下

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // 为ActionBar扩展菜单项
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.actionbar, menu);
        return super.onCreateOptionsMenu(menu);
    }
[/code]

当用户点击Action按钮的时候,系统会调用Activity的onOptionsItemSelected()方法,通过方法传入的MenuItem参数,我们可以调用它的getItemId()方法和menu资源中的id进行比较,从而辨别出用户点击的是哪一个Action按钮

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {  
         case R.id.search:  
                Toast.makeText(this, "你点击了“搜索”按键!", Toast.LENGTH_SHORT).show();  
                return true;  
            case R.id.setting:  
                Toast.makeText(this, "你点击了“设置”按键!", Toast.LENGTH_SHORT).show();  
                return true;  
            
            default:  
                return super.onOptionsItemSelected(item);  
            }
[/code]

转载于:https://my.oschina.net/u/1466327/blog/532938

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: