我需要创建具有三个选项卡的应用程序。第一个选项卡是MapViewActivity,第二个选项卡是搜索。
/** 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);
}
但是当有人选择第二个标签(搜索)时,我想在第一个标签内容中显示弹出窗口。 可能吗?你有一些例子吗?
答案 0 :(得分: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);