0

Android 2.1を使用してアプリケーションを開発しています。1 つのページで、上部には 2 つのテキストビューがあり、下部には 2 つのタブを持つタブレイアウトがあります。

私の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 と Type2Activity は ListView です)。ユーザーが任意のタブをクリックすると、タブに ListView が表示されます。ユーザーはリストビューから任意のアイテムを選択でき、そのアイテムは PageActivity クラスの text1 変数と text2 変数にそれぞれ設定されます。

質問:ユーザーが任意のタブのリスト ビューから任意の項目を選択したときに、タブ アクティビティの結果を PageActivity に返すにはどうすればよいですか。

4

1 に答える 1

0

タブのListViewから位置を取得できます。その位置を使用して、onClickListenerで対応するデータを取得します。

このデータをTextViewsに設定します。ListViewsのOnClickListenerがTextViewsを参照していると想定しています

于 2012-01-25T11:43:19.487 に答える