1.tab导航
直接获取活动的ActionBar,不需要xml布局视图
public class TabNavActivity extends Activity {
//创建一个tab监听器
private TabListener listener = new TabListener() {
@Override //tab切换时调用
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
@Override //选中tab时调用
public void onTabSelected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//从当前活动中获得bar对象,每个活动只有一个bar
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//使用系统样式
//创建多个tab对象
Tab tab1 = actionBar.newTab().setText("Tab1");
Tab tab2 = actionBar.newTab().setText("Tab2");
Tab tab3 = actionBar.newTab().setText("Tab3");
//必须注册否则报错
tab1.setTabListener(listener);
tab2.setTabListener(listener);
tab3.setTabListener(listener);
//添加tab页
actionBar.addTab(tab1);
actionBar.addTab(tab2);
actionBar.addTab(tab3);
}
}
2.list导航
public class ListNavActivity extends Activity {
String[] actions={"one action","two action","three action"};//列表项
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,actions);//绑定适配器,使用系统下拉式list
ActionBar actionBar = getActionBar();//获取活动ActivityBar
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);//设置导航模式
//设置回调,和项监听器
actionBar.setListNavigationCallbacks(adapter, new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
Toast.makeText(ListNavActivity.this, "你选择了 " + actions[itemPosition], Toast.LENGTH_SHORT).show();
return false;
}
});
}
}
3.返回导航
public class BackNavActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getActionBar();//获取活动ActivityBar
actionBar.setDisplayHomeAsUpEnabled(true);//设置左上角返回图标可见
actionBar.setHomeButtonEnabled(true);//设置图标可点击
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home://如果按了返回键
//指定返回到的活动(可以是别的)
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//如果activity在task存在,将Activity之上的所有Activity结束掉
startActivity(intent);
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
}
4.查找导航
首先定义一个menu资源,这里文件名为search.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_search"
android:title="查找"
android:icon="@android:drawable/ic_menu_search"
android:showAsAction="ifRoom|collapseActionView"
android:actionViewClass="android.widget.SearchView" />
</menu>
<!-- 引用系统自带的图标资源 -->
<!-- showAsAction:显示样式 -->
<!-- actionViewClass:使用系统查找组件 -->
直接加在选项菜单栏中
public class SearchNavActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search, menu);//加载资源
return super.onCreateOptionsMenu(menu);
}
}
效果图