PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!
面下片图是测试程序的效果图
两个选项卡的现实
局布文件 main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical" android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@android:id/tabhost" android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout android:orientation="vertical"
- android:layout_width="fill_parent" android:layout_height="fill_parent">
- <TabWidget android:id="@android:id/tabs"
- android:layout_width="fill_parent" android:layout_height="wrap_content" />
- <FrameLayout android:id="@android:id/tabcontent"
- android:layout_width="fill_parent" android:layout_height="wrap_content"
- android:layout_weight="3">
- </FrameLayout>
- </LinearLayout>
- </TabHost>
- </LinearLayout>
Java代码现实 MainActivity.java
- package hkp.test;
- import android.app.TabActivity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.widget.TabHost;
- public class MainActivity extends TabActivity {
- private TabHost tabHost;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- tabHost = getTabHost();
- tabHost.addTab(tabHost.newTabSpec("tab1")
- .setIndicator("First")
- .setContent(new Intent(this,FirstGroupTab.class)));//第一个选项卡应用一个ActivityGroup
- tabHost.addTab(tabHost.newTabSpec("tab2")
- .setIndicator("Second")
- .setContent(new Intent(this, SecondTab.class)));//第二个选项卡是一个Activity
- tabHost.setCurrentTab(0);
- }
- }
应用 ActivityGroup的管理
- package hkp.test;
- import android.app.ActivityGroup;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.Window;
- /**
- * @author HuangKaipeng hkp2006@gmail.com
- * 2011-10-5
- *
- */
- public class FirstGroupTab extends ActivityGroup {
- /**
- * 一个静态的ActivityGroup变量,于用管理本Group中的Activity
- */
- public static ActivityGroup group;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- group = this;
- }
- @Override
- public void onBackPressed() {
- // TODO Auto-generated method stub
- // super.onBackPressed();
- //把后退事件交给子Activity处置
- group.getLocalActivityManager()
- .getCurrentActivity().onBackPressed();
- }
- @Override
- protected void onResume() {
- // TODO Auto-generated method stub
- super.onResume();
- //把面界切换放到onResume方法中是因为,从其他选项卡切换回来时,
- //调用搞得是onResume方法
- //要转跳的面界
- Intent intent = new Intent(this, FirstActivity.class).
- addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- //把一个Activity转换成一个View
- Window w = group.getLocalActivityManager().startActivity("FirstActivity",intent);
- View view = w.getDecorView();
- //把View添加大ActivityGroup中
- group.setContentView(view);
- }
ActivityGroup中的第一个Activity
- package hkp.test;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.Window;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- /**
- * @author HuangKaipeng hkp2006@gmail.com
- * 2011-10-5
- *
- */
- public class FirstActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.first_activity);
- //转跳到第二个面界
- Button btn = (Button) findViewById(R.id.btn);
- btn.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- Intent intent = new Intent(FirstActivity.this, SecondActivity.class).
- addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- //把一个Activity转换成一个View
- Window w = FirstGroupTab.group.getLocalActivityManager()
- .startActivity("SecondActivity",intent);
- View view = w.getDecorView();
- //把View添加大ActivityGroup中
- FirstGroupTab.group.setContentView(view);
- }
- });
- }
- }
XML
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="这个是ActivityGroup中的第一个面界!"
- />
- <Button android:id="@+id/btn"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="转跳到本组中的另一个Activity中"/>
- </LinearLayout>
文章结束给大家分享下程序员的一些笑话语录:
与女友分手两月有余,精神萎靡,面带菜色。家人介绍一女孩,昨日与其相亲。女孩果然漂亮,一向吝啬的我决定破例请她吃晚饭。
选了一个蛮贵的西餐厅,点了比较贵的菜。女孩眉开眼笑,与我谈得很投机。聊着聊着,她说:“我给你讲个笑话吧。”“ok”
“一只螳螂要给一只雌蝴蝶介绍对象,见面时发现对方是只雄蜘蛛。见面后螳螂问蝴蝶‘如何?’,‘他长的太难看了’,‘别看人家长的丑,人家还有网站呢’。”
“呵呵………”我笑。忽然她问:“你有网站吗?”