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

Android ActionBar使用方法

2014-03-18 16:14 411 查看


属性:

actionBar.setDisplayHomeAsUpEnabled(true) // 给左上角图标的左边加上一个返回的图标 。对应ActionBar.DISPLAY_HOME_AS_UP

actionBar.setDisplayShowHomeEnabled(true) //使左上角图标是否显示,如果设成false,则没有程序图标,仅仅就个标题,否则,显示应用程序图标,对应id为android.R.id.home,对应ActionBar.DISPLAY_SHOW_HOME

actionBar.setDisplayShowCustomEnabled(true) // 使自定义的普通View能在title栏显示,即actionBar.setCustomView能起作用,对应ActionBar.DISPLAY_SHOW_CUSTOM

actionBar.setDisplayShowTitleEnabled(true) //对应ActionBar.DISPLAY_SHOW_TITLE

一、使用自己定义的view在title栏显示
ActionBar actionBar = getActionBar();
actionBar.setCustomView(R.layout.actionbar_layout),//自己定义的标题栏
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
二、Tab类型的ActionBar
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab tab1 = actionBar.newTab();
tab1.setText("Tab 1");
tab1.setTabListener(this);
actionBar.addTab(tab1);
Tab tab2 = actionBar.newTab();
tab2.setText("Tab 2);
tab2.setTabListener(this);
actionBar.addTab(tab2);
注意:需要实现TabListener接口 http://blog.csdn.net/eclipsexys/article/details/8688538
三、添加ActionBar的Item
1、通过程序动态布局
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ActionBar actionBar = getActionBar();
}

@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
MenuItem add = menu.add(0,0,0,"add");
MenuItem del = menu.add(0,1,0,"del");
MenuItem save = menu.add(0,2,0,"save");
//绑定到ActionBar
add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
del.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
save.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
super.onOptionsItemSelected(item);
switch(item.getItemId()){
case 0:
Toast.makeText(this,"dsfdf",Toast.LENGTH_LONG).show();
break;
case 1:
Toast.makeText(this,"del",Toast.LENGTH_LONG).show();
break;
case 2:
Toast.makeText(this,"save",Toast.LENGTH_LONG).show();
break;
}
return true;
}
}
2、通过Menu.xml文件布局
menu/menu.xml
<?xml version="1.0" encoding = "utf-8" ?>
<menu xmlns:android = "http://schemas.android.com/apk/res/android">
<item
android:id="@+id/item1"
android:orderInCategory = "1"
android:showAsAction = "ifRoom|withText"
android:title="@String/save"/>
<item
android:id="@+id/item2"
android:orderInCategory="2"
android:showAsAction="ifRoom|withText"
android:title="@String/edit" />
</menu>
public class MainActivity extends Activity{
@Override
public void onCreate(Bundle saveInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu,menu);
return true;
}
}
三、ActionBar中添加下拉菜单
在ActionBar中添加下拉菜单,主要有一下几个关键步骤:
1、生成SpinnerAdapter,设置ActionBar的下拉菜单的菜单项
2、实现ActionBar.OnNavigationListener接口,当点击ActionBar的菜单项是进行相应的操作
3、调用setNavigationMode()方法将ActionBar的才做模式设置为ActionBar.NAVIGATION_MODE_LIST. 注意:这个步骤应该在Activity的onCreat()回调函数时执行
4、调用setListNavigaCallbacks()方法为ActionBar添加适配器和监听器。
在strings.xml文件中添加以下的代码,来做下拉列表中的内容
<string-array name="student">
<item>邓名侨</item>
<item>刘天喜</item>
<item>其黄石</item>
</string-array>
ActionBar actionBar = getActionBar();
//生成一个SpinnerAdapter
SpinnerAdapter adapter = ArrayAdapter.createFromResource(this,R.array.student,android.R.layout.simple_spinner_dropdown_item);
actionBar.setNavigationMode(ActionBAr.NAVIGATION_MODE_LIST);
//为了监听用户的选择
actionBar.setListNavigationCallbacks(adapter,new OnNavigationListener(){
@Override
public boolean onNavigationItemSelected(int itemPosition,long itemId){
Toast.makeText(MainActivity.this,"fdksf",Toast.LENGTH_LONG).show();
return false;
}
});
注意:actionBar的样式可以在manifest.xml中设置
四、默认类型样式的ActionBar
ActionBar actionBar = getActionBar();
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflator = getMenuInflater();
inflator.inflate(R.menu.main,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case R.id.action_settings:
Toast.makeText(this,"settings",Toast.LENGTH_LONG).show();
break;
}
return super.onOptionsItemSelected(item);
}
menu/main.xml
<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"/>

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