0

以下は私が欲しいものの写真です。

ここに画像の説明を入力

たった今。アイテムをクリックすると (画像の 2 を参照)、間違ったバージョン (画像の 3 を参照) が表示されます。

2 番目のタブホスト (画像の 3 を参照) を最初のタブホストのフレームレイアウトにロードするにはどうすればよいですか?

現在のコード (2 にあります。画像を参照) (間違ったレイアウトを生成します) は次のとおりです。

listView.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {

                Intent i = new Intent(StaticResources.FrameContainer.getContext(), AppSecondTabHost.class);
                StaticResources.FrameContainer.getContext().startActivity(i);
            }
        });

静的変数: StaticResources.FrameContainer は、メイン アクティビティ (画像の 1 を参照) で次のように設定されます。

StaticResources.FrameContainer = (View)getTabHost().getTabContentView();

正しいバージョンを表示するために onitem クリック イベントを書き直す方法はありますか? 写真に見られるように、2 つのタブホストを持つ右下のバージョン。

編集

さらに明確にするために。pic 1 でタブホストを作成します。タブの 1 つをクリックすると、アクティビティが開始され、そのアクティビティにリストが表示されます (画像 2)。このリストのアイテムをクリックすると、このアイテムはその ID をインテントに保存し、最初のタブホスト内に 2 番目のタブホストを開きます (図 3-4)。2 番目のタブホスト (図 3) は、onitemclick イベントで図 2 に設定された ID を読み取ります。

4

3 に答える 3

1

タブホストを使用している場合、すべてのタブをタブホストに追加すると、すべてのタブ クリック イベントが自動的に処理されます。onClickListener を使用してタブビューを手動で変更する必要はありません。

以下は私のアプリケーションの例です:

    intent = new Intent().setClass(this, deployment.class);
    intent.putExtra("deploy_data", deployRawData);

    spec = tabHost.newTabSpec("Deployment").setIndicator("Deployment",
                      res.getDrawable(R.drawable.man))
                  .setContent(intent);

    tabHost.addTab(spec);

このようにして、タブホストに追加する前に、基本的にアクティビティとタブビューを一緒にバンドルしています。これは、onClickListener のコーディングにかかる​​多くの労力を節約するのに役立ちます。

于 2012-06-20T08:33:43.067 に答える
0
 TabHost tabHost=getTabHost();
    TabHost.TabSpec tabSpec;
    Resources res=getResources();

    tabSpec=tabHost.newTabSpec("First");
    tabSpec.setIndicator("FirstTabName",res.getDrawable(R.drawable.image));
    Intent i1=new Intent(this,NextClass.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    tabSpec.setContent(i1);
    tabHost.addTab(tabSpec);

このようにタブに Intent を定義します。したがって、タブは一定のままで、下部のコンテンツはアクティビティのコンテンツになります。

リストからアイテムを選択すると、タブが 2 つしかない別のレイアウトの次のクラスに移動します。.

于 2012-06-20T09:43:09.393 に答える
0

TabHost tabHost=getTabHost(); TabHost.TabSpec tabSpec; リソース res=getResources();

tabSpec=tabHost.newTabSpec("最初"); tabSpec.setIndicator("FirstTabName",res.getDrawable(R.drawable.image)); Intent i1=new Intent(this,NextClass.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); tabSpec.setContent(i1); tabHost.addTab(tabSpec);

このようにタブに Intent を定義します。

于 2012-06-20T10:36:02.157 に答える