0

3つのタブを持つアプリケーションを作成する必要があります。最初のタブはMapViewActivity、2番目のタブは検索です。

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_tab);

    tabHost = getTabHost();
    resources = getResources();

    AddTab(resources.getString(R.string.tab_tag1),
            R.drawable.icon_tab1, MapViewActivity.class);

    AddTab(resources.getString(R.string.tab_tag2),
            R.drawable.icon_tab2, MapViewActivity.class);

    AddTab(resources.getString(R.string.tab_tag3), R.drawable.icon_tab3,
            MapViewActivity.class);     
}

private void AddTab(String tabName, int idPhoto, Class className) {
    TabSpec tabspec = tabHost.newTabSpec(tabName);
    tabspec.setIndicator(tabName, getResources().getDrawable(idPhoto));
    Intent intent = new Intent(this, className);
    tabspec.setContent(intent);
    tabHost.addTab(tabspec);
}

しかし、誰かが2番目のタブ(検索)を選択すると、最初のタブのコンテンツ内にポップアップを表示したいと思います。出来ますか?例はありますか?

4

1 に答える 1

1

コードにこれを追加します

getTabWidget().getChildAt(1).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            tabHost.setCurrentTab(0);
            Toast.makeText(getApplicationContext(), "Clicked", 35).show();
            // Add pop up code here
        }
});

だから、このように見えるはずです

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_tab);

    tabHost = getTabHost();
    resources = getResources();

    AddTab(resources.getString(R.string.tab_tag1),
            R.drawable.icon_tab1, MapViewActivity.class);

    AddTab(resources.getString(R.string.tab_tag2),
            R.drawable.icon_tab2, MapViewActivity.class);

    AddTab(resources.getString(R.string.tab_tag3), R.drawable.icon_tab3,
            MapViewActivity.class);
    getTabWidget().getChildAt(1).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            tabHost.setCurrentTab(0);
            Toast.makeText(getApplicationContext(), "Clicked", 35).show();
            // Add pop up code here
        }
    });
}

編集2:使用できます

getTabWidget().getChildAt(1).setOnClickListener(this);

OR

getTabWidget().getChildAt(1).setOnClickListener(someListener);
于 2012-11-01T05:03:02.957 に答える