如何将Tabs的结果返回到我的Activity

时间:2012-01-25 11:21:06

标签: android android-intent android-tabactivity

我正在使用android 2.1开发一个应用程序。在一个页面中,上半部分有两个文本视图,下半部分有两个选项卡的tablayout。

我的XML代码就是这样......

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <include  android:id="@+id/content" layout="@layout/content_table" 
              android:layout_height="wrap_content"
              android:layout_width="fill_parent"/> 

    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tabHost" android:layout_below="@+id/content"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <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" />
    </LinearLayout>
</TabHost> 

</RelativeLayout>

活动类就像......

public class PageActivity extends ActivityGroup {
    LogoBarActivity logoBar;
    TabHost mTabHost;
    TextView text1;
    TextView text2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.page);

        text1 = findViewById(R.id.textview1);
        text2 = findViewById(R.id.textview2);

        mTabHost = (TabHost) findViewById(R.id.tabHost);  
        mTabHost.setup(this.getLocalActivityManager());
        TabHost.TabSpec spec;  
        Intent intent;  

        intent = new Intent().setClass(this, Type1Activity.class);
        spec = mTabHost.newTabSpec("type1").setIndicator("Type1").setContent(intent);
        mTabHost.addTab(spec);

        intent = new Intent().setClass(this, Type2Activity.class);
        spec = mTabHost.newTabSpec("type2").setIndicator("Type2").setContent(intent);
        mTabHost.addTab(spec);

        mTabHost.setCurrentTab(0);
        mTabHost.getTabWidget().getChildAt(0).getLayoutParams().height /= 2; 
        mTabHost.getTabWidget().getChildAt(1).getLayoutParams().height /= 2;   
    }
}

说明:当用户访问此页面时,他可以单击Type1或Type2上的任何选项卡。两个选项卡都有ListView(Type1Activity&amp; Type2Activity是ListView)。 当用户点击任何标签时,他将在标签中获得ListView。用户可以从列表视图中选择任何项目,该项目将分别设置在PageActivity类的text1和text2变量中。

问题:当用户从任何标签的列表视图中选择任何项目时,如何将标签活动的结果返回到我的PageActivity。

1 个答案:

答案 0 :(得分:0)

您可以从选项卡中的ListView获取位置,使用该位置获取onClickListener中的相应数据。

在TextViews中设置此数据。我假设ListViews的OnClickListener引用了TextViews