首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

tabHost的简略使用以及registerReceiver和Handler的使用

2012-09-20 
tabHost的简单使用以及registerReceiver和Handler的使用tabHost有点像listView 也有TabActivity或者activi

tabHost的简单使用以及registerReceiver和Handler的使用

tabHost有点像listView 也有TabActivity或者activity发动

那么看一下Activity发动

 class SelfContainedTabHost extends Activity
setContentView(R.layout.tabhost_container);                TabHost tabs = (TabHost)this.findViewById(R.id.tabhost);        tabs.setup();                             tabs.addTab(tabs.newTabSpec("one").setContent(R.id.tab1content).setIndicator("TAB 1"));        tabs.addTab(tabs.newTabSpec("two").setContent(R.id.tab2content).setIndicator("TAB 2"));        tabs.setCurrentTab(0);

?前两部是必须的,在xml中也需要一个

<TabWidget    android:id="@android:id/tabs"        android:layout_width="fill_parent"        android:layout_height="60px"                android:paddingBottom="10dip"/>

?

注意他的id android:id/tabs。

整个xml为

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent">    <TabHost    android:id="@+id/tabhost"        android:layout_width="fill_parent"        android:layout_height="fill_parent">    <TabWidget    android:id="@android:id/tabs"        android:layout_width="fill_parent"        android:layout_height="60px"                android:paddingBottom="10dip"/>        <FrameLayout    android:id="@android:id/tabcontent"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:paddingTop="60px"><LinearLayoutandroid:id="@+id/tab1content"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#00008B"><!--  Put Tab 1 Views in here --></LinearLayout><LinearLayoutandroid:id="@+id/tab2content"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#FFFF00"><!--  Put Tab 2 Views in here --></LinearLayout></FrameLayout></TabHost></LinearLayout>

?

2.tabActivity

public class Container extends TabActivity{@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);host = getTabHost();Intent intent = new Intent(this, Tab1Activity.class);host.addTab(host.newTabSpec("one").setIndicator("TAB1").setContent(intent));intent = new Intent(this, Tab2Activity.class);host.addTab(host.newTabSpec("two").setIndicator("TAB2").setContent(intent));}@Overrideprotected void onResume() {super.onResume();receiver = new TabChangeReceiver();registerReceiver(receiver, new IntentFilter("com.novoda.TAB"), null, mHandler);}@Overrideprotected void onPause() {super.onPause();unregisterReceiver(receiver);};    protected Handler mHandler = new Handler() {        @Override public void handleMessage(Message msg) {            switch (msg.what) {            case SWITCH_TAB:            Log.i("handler", "using the handler");                    host.setCurrentTab(msg.arg1);                        break;            }        }    };    public class TabChangeReceiver extends android.content.BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {int intExtra = intent.getIntExtra("tab", 0);Log.i(TabChangeReceiver.class.getSimpleName(), "Recieved broadcast with extra=[" + intExtra + "]");mHandler.sendMessage(mHandler.obtainMessage(SWITCH_TAB, intExtra, 0));}}private TabHost host;public static final int SWITCH_TAB = 2545;protected static TabChangeReceiver receiver;}

?

public class Tab1Activity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);        setContentView(R.layout.tab1);        findViewById(R.id.tab1button).setOnClickListener(new OnClickListener() {public void onClick(View v) {Intent intent = new Intent("com.novoda.TAB");intent.putExtra("tab", 1);sendBroadcast(intent);}});}}

?

热点排行