Tab控件 笔记

选项卡控件的使用Tab
1、要在组件配置文件中添加Tab的控件

<TabHost
	android:id="@+id/tabHost"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
/>

 

 2、启动程序Activity需要继承TabActivity类和TabContentFactory接口
继承TabActivity主要是为了得到TabHost这个类
继承接口TabContentFactory是为了添加一个监听,当Tab标签被选中的时候会执行createTabContent(String tag)方法——具体实现下拉列表

@Override
public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	//TabHost是一个包含Tab标签的容器,它包含Tab标签和显示contents of page两部分
	TabHost th = getTabHost();
	LayoutInflater.from(this).inflate(R.layout.main, th, true);
	//创建了三个Tab标签,名称分别是all、ok、cancel
	TabHost.TabSpec all = th.newTabSpec("all");
	TabHost.TabSpec ok = th.newTabSpec("ok");
	TabHost.TabSpec cancel = th.newTabSpec("cancel");
	//设定标签显示的内容和选项的内容,执行setContent方法的时候会执行接口createTabContent()方法
	th.addTab(all.setIndicator("所有通话记录_").setContent(this));
	th.addTab(ok.setIndicator("已接电话_").setContent(this));
	th.addTab(cancel.setIndicator("未接电话_").setContent(this));
}

@Override
public View createTabContent(String tag) {
	//下面该方法是制作一个ListView
	ListView lv = new ListView(this);
	List<String> list = new ArrayList<String>();
	if(tag.equals("all")){
		list.add("Tom");
		list.add("Kite");
		list.add("Rose");
	}else if(tag.equals("ok")){
		list.add("Tom");
		list.add("Kite");
	}else if(tag.equals("cancel")){
		list.add("Rose");
	}
	ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_checked, list);
	lv.setAdapter(adapter);
	
	//给下拉选项添加事件
	lv.setOnItemClickListener(new OnItemClickListener() {
		@Override
		public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
			System.out.println("view.getId() : " + view.getId());
			System.out.println("position : " + position);
			System.out.println("id : " + id);
			//使用了提示对话框Toast
			Toast.makeText(getApplicationContext(), "short", Toast.LENGTH_SHORT).show();
			}
	});
	return lv;
}

 

你可能感兴趣的:(tab)