Эй, я искал переполнение стека по тому же вопросу, что и это, но я не могу заставить его работать, и я отчаянно надеюсь, что кто-то может помочь!
У меня есть три вкладки, каждая из которых имеет свою собственную деятельность. На первой вкладке я внедрил список на вкладке, и у него есть некоторые значения, которые не представляют проблемы. Остальные две вкладки имеют раскладки таблиц.
Здесь проблема: Мне нужно переключиться на вторую вкладку, когда щелкнут любой элемент списка.
Как мне это сделать? Я прочитал несколько страниц в Интернете о регистрации намерения, но не могу заставить ничего работать с tabHost, реализующим listView.
Код ниже!
Большое спасибо.
открытый класс AlertsActivity расширяет TabActivity реализует OnTabChangeListener, OnClickListener { private static final Строка LIST1_TAB_TAG = "Сохраненные оповещения"; private ListView listView1; private TabHost tabHost;
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.settings:
startActivity(new Intent(this, Prefs.class));
return true;
}
return false;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab1);
tabHost = getTabHost();
tabHost.setOnTabChangedListener(this);
listView1 = (ListView) findViewById(R.id.list);
List<String> listStrings1 = new ArrayList<String>();
listStrings1.add("Item 1");
listStrings1.add("Item 2");
listStrings1.add("Item 3");
listStrings1.add("Item 4");
listStrings1.add("Item 5");
listStrings1.add("Item 6");
listStrings1.add("Item 7");
listStrings1.add("Item 8");
listStrings1.add("Item 9");
listStrings1.add("Item 10");
listView1.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, listStrings1));
tabHost.addTab(tabHost.newTabSpec(LIST1_TAB_TAG).setIndicator(LIST1_TAB_TAG).setContent(new TabContentFactory() {
public View createTabContent(String arg0) {
return listView1;
}
}));
}
public void onTabChanged(String tabName) {
if(tabName.equals(LIST1_TAB_TAG)) {
}
}
public void onClick(View src) {
}
}
В вашем слушателе (внутри вашей TabActivity) просто выполните:
getTabHost().setCurrentTab(index);
Документация TabHost для setCurrentTab (int)
Документация по TabActivity для getTabHost()