Android Две вкладки с одинаковой активностью - PullRequest
0 голосов
/ 21 мая 2011

Это должно быть действительно просто, но это не работает.То, что я хочу, это две разные вкладки, которые используют один и тот же класс активности.Мне все равно, занимаются ли они одним и тем же видом деятельности или у каждого из них есть свой экземпляр.В этом коде я установил вторую вкладку с той же активностью, что и первая, но только первая будет загружена в приложение.Если я нажму на вторую вкладку, то получу черный экран:

//Create tabs
    Resources res = getResources();
    TabHost tabHost = getTabHost();
    TabHost.TabSpec spec;
    Intent intent;
    String tabTitle = getString(R.string.livevideo);

    // Initialize intent
    // Initialize tabspec for each tab and add it to host
    intent = new Intent().setClass(this, CameraListView.class);
    spec = tabHost.newTabSpec("live").setIndicator(tabTitle,res.getDrawable(R.drawable.livebtn)).setContent(intent);
    tabHost.addTab(spec);

    tabTitle = getString(R.string.videoplayback);
    intent = new Intent().setClass(this, CameraListView.class);
    spec = tabHost.newTabSpec("playback").setIndicator(tabTitle,res.getDrawable(R.drawable.playbackbtn)).setContent(intent);
    tabHost.addTab(spec);

Разве это не просто?Я думаю, что создание нового намерения с таким же действием приведет к созданию второй копии этого действия, но, возможно, это не так, как работает Android.

Ответы [ 2 ]

1 голос
/ 21 мая 2011

Попробуйте что-то вроде этого:

TabHost tabHost = getTabHost();
TabSpec spec = null;

tabSpec = tabHost.newTabSpec("tabSpec");
tabSpec.setIndicator(someString, someDrawable);
tabSpec.setContent(new Intent(getApplicationContext(), CameraListView.class));
tabHost.addTab(tabSpec);

tabSpec = tabHost.newTabSpec("tabSpec");
tabSpec.setIndicator(someString, someDrawable);
tabSpec.setContent(new Intent(getApplicationContext(), CameraListView.class));
tabHost.addTab(tabSpec);

// EDIT В ответ на ваш вопрос в комментариях. Я ничего не знаю о том, как делать то, что ты хочешь делать. У меня была точно такая же проблема. Наконец, я решил ее, создав новую активность, унаследованную от firstTabActivity, и поместил ее во вторую вкладку. В вашем случае, я думаю, это будет довольно просто - SecondTabActivity расширяет FirstTabActivity и переопределяет метод onListItemClick().

0 голосов
/ 06 марта 2013

Используйте разные теги для каждого tabspec как здесь;

tabSpec = tabHost.newTabSpec("tabSpec");
tabSpec = tabHost.newTabSpec("tabSpec2");

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...