博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Actionbar的使用
阅读量:6844 次
发布时间:2019-06-26

本文共 4381 字,大约阅读时间需要 14 分钟。

hot3.png

package com.example.myactionbardemo2;import android.os.Bundle;import android.app.ActionBar;import android.app.Fragment;import android.app.ActionBar.Tab;import android.app.ActionBar.TabListener;import android.app.Activity;import android.app.FragmentTransaction;import android.content.Intent;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;//展示了actionbar的tab模式和list模式。public class MainActivity extends Activity {	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		ActionBar actionBar=getActionBar();		actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);		Tab tab1=actionBar.newTab();		tab1.setText("tab1");		//必须添加监听器,否则会报错		//MyTabListener的设置可以使每个tab使用自己的监听器,显示自己不同的fragment里的内容		tab1.setTabListener(new MyTabListener
(MyFragment1.class, this,R.id.container)); Tab tab2=actionBar.newTab(); tab2.setText("tab1"); tab2.setTabListener(new MyTabListener
(MyFragment2.class, this,R.id.container)); Tab tab3=actionBar.newTab(); tab3.setText("tab1"); tab3.setTabListener(new MyTabListener
(MyFragment3.class, this,R.id.container)); actionBar.addTab(tab1); actionBar.addTab(tab2); actionBar.addTab(tab3); Button button=(Button) findViewById(R.id.but); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(getApplicationContext(), OtherActivity.class); startActivity(intent); } }); } class MyTabListener
implements TabListener{ Class
fragmentClass; Activity activity; int container; Fragment fragment; public MyTabListener(Class
fragmentClass, Activity activity, int container) { super(); this.fragmentClass = fragmentClass; this.activity = activity; this.container = container; } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub if (fragment==null) { //fragment.getName返回的是包名+各自fragment的名字 fragment=Fragment.instantiate(activity, fragmentClass.getName(),null); //把fragment加入到activity中,该fragment可以有界面(在onCreateView生成),也可以返回空无界面 ft.add(container, fragment); }else { ft.attach(fragment); } } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub if (fragmentClass!=null) { ft.detach(fragment); } } /*actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); ArrayList
list=new ArrayList
(); list.add("item1"); list.add("item2"); ArrayAdapter
adapter=new ArrayAdapter
(getApplicationContext(), android.R.layout.simple_list_item_1, list); actionBar.setListNavigationCallbacks(adapter, new OnNavigationListener() { @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { // TODO Auto-generated method stub switch (itemPosition) { case 0: Toast.makeText(getApplicationContext(), "item1",1000).show(); break; case 1: Toast.makeText(getApplicationContext(), "item2",1000).show(); break; } return true; } });*/ /*actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeButtonEnabled(false);*/ } }
package com.example.myactionbardemo2;import android.app.ActionBar;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.MenuItem;public class OtherActivity extends Activity {	@Override	protected void onCreate(Bundle savedInstanceState) {		// TODO Auto-generated method stub		super.onCreate(savedInstanceState);		setContentView(R.layout.other);		//当放回父activity时使用		ActionBar actionBar=getActionBar();		actionBar.setDisplayHomeAsUpEnabled(true);		//其单击处理事件在onOptionsItemSelected里。		actionBar.setHomeButtonEnabled(true);	}	@Override	public boolean onOptionsItemSelected(MenuItem item) {		// TODO Auto-generated method stub		switch (item.getItemId()) {		case android.R.id.home:			Intent intent=new Intent(this,MainActivity.class);			intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);			startActivity(intent);			break;		}		return true;	}}

当在actionbar的不同tab进行切换时,进行fragment的切换,xml代码如下

注意是在主界面布局中使用的framelayout标签进行fragment的生成切换。

源码链接:

转载于:https://my.oschina.net/u/1015229/blog/169961

你可能感兴趣的文章
【Python】random模块
查看>>
嵌入式Linux下Camera编程--V4L2【转】
查看>>
一文读懂最近流行的CNN架构(附学习资料)
查看>>
[工具] 程序员必须软件
查看>>
.Net Discovery系列文章阅读索引--带你探索未知的.Net世界
查看>>
设计模式(一)简单工厂(创建型)(Java&&PHP)
查看>>
Code First开发系列之数据库迁移
查看>>
UI方面书籍推荐
查看>>
Spark SQL概念学习系列之Spark SQL 优化策略(五)
查看>>
pgpool-II的 FATAL: role "nobody" does not exist 错误
查看>>
jsp路径
查看>>
关于location.href几种用法的区别
查看>>
【转】拷贝构造函数/深拷贝/浅拷贝
查看>>
什么是类比估算法=自上而下的估算
查看>>
[Java] Java 打包成jar包 和 解压jar包
查看>>
模拟ajax的 script请求
查看>>
2013年小米校园招聘笔试题
查看>>
单片机第13课:串口通信---向计算机发送数据
查看>>
[译]更改自定义活动设计器上的图标
查看>>
使用WF4 状态机CTP1 进行工作流开发
查看>>