android之ActionBar的使用,ActionBar提供了顶部菜单。一般新建一个Activity会自动在menu文件夹下生成一个menu的xml文件,我们可以通过编辑该文件设置菜单。例如:(menu.xml)

_ueditor_page_break_tag_

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>
  <item 
        android:id="@+id/item1" 
        android:orderInCategory="1" 
        android:showAsAction="never" 
        android:title="save"/> 
 
    <item 
        android:id="@+id/item_search"
        android:actionViewClass="android.widget.SearchView" 
        android:orderInCategory="2" 
        android:showAsAction="ifRoom|withText" 
        android:title="edit"/> 
 
    <item 
        android:id="@+id/item1" 
        android:orderInCategory="3" 
        android:showAsAction="never" 
        android:title="about"/> 
 
    <item 
        android:id="@+id/item1" 
        android:orderInCategory="4" 
        android:showAsAction="never" 
        android:title="help"/> 
</menu>
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.menu, menu); 
  return true;
 }

还可以在后台直接添加:

  @Override
 public boolean onCreateOptionsMenu(Menu menu) {
       super.onCreateOptionsMenu(menu); 
       MenuItem add = menu.add(0, 1, 0, "Save"); 
       MenuItem open = menu.add(0, 2, 1, "Open"); 
       MenuItem close = menu.add(0, 3, 2, "Close"); 
       add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
       open.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
       close.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
       return true;
 }

主菜单项属性是android:showAsAction。
  这个属性可接受的值有:
  1、always:这个值会使菜单项一直显示在Action Bar上。
  2、ifRoom:如果有足够的空间,这个值会使菜单项显示在Action Bar上。
  3、never:这个值使菜单项永远都不出现在Action Bar上。
  4、withText:这个值使菜单项和它的图标,菜单文本一起显示。

ActionBar的显示与隐藏:

  Button showBt = (Button) findViewById(R.id.showBt); 
        showBt.setOnClickListener(new OnClickListener() 
        { 
            @SuppressLint("NewApi")
   public void onClick(View view) 
            { 
                ActionBar actionBar = getActionBar(); 
                actionBar.show(); 
            } 
        }); 
        
        Button hideBt = (Button) findViewById(R.id.hideBt); 
        hideBt.setOnClickListener(new OnClickListener() 
        { 
            @SuppressLint("NewApi")
   public void onClick(View view) 
            { 
                ActionBar actionBar = getActionBar(); 
                actionBar.hide(); 
            } 
        });

android开发.png

设置一个为搜索:android:actionViewClass="android.widget.SearchView"

为搜索绑定事件:

SearchView searchView = (SearchView) menu.findItem(R.id.item_search).getActionView();
  searchView.setOnQueryTextListener(new OnQueryTextListener()
  {
   @Override
   public boolean onQueryTextChange(String newText) 
   {
    return false;
   }
   @Override
   public boolean onQueryTextSubmit(String query) {
    // TODO Auto-generated method stub
    alertInfo(query);
    
    return false;
    }
  });
 private void alertInfo(String QueryInfo)
 {
  Toast.makeText(this, "Searching for: " + QueryInfo + "...", Toast.LENGTH_SHORT).show();
  
//  Dialog alertDialog = new AlertDialog.Builder(this).
//    setTitle("对话框的标题"). 
//             setMessage("对话框的内容"). 
//             setIcon(R.drawable.ic_launcher). 
//             create(); 
//  alertDialog.show();
 }

 

最后修改:2013 年 09 月 06 日
如果觉得我的文章对你有用,请随意赞赏