我正在尝试设置一个onTabChangedListner()
,我已经浏览了Stack Overflow和其他一些网站,而且它几乎都是一样的,所以我复制了那些代码。这是我当前的代码(这都在onCreate()
上)
getTabHost().setOnTabChangedListner(new onTabChangeListner() {
@Override
public void onTabChanged(String tabId) {
Toast.makeText(this, "A new tab has been selected", Toast.LENGHT_SHORT).show();
}
});
我收到3个错误:
未知实体OnTabChangeListner()
(com.mycompany.myapp.MainActivity.(anonymous), java.lang.String,int)
方法android.widget.TabHost.setOnTabChangedListner(android.widget.TabHost.OnTabChangeListner) in 'android.widget.TabHost'can not be applied to (com.mycompany.myapp.MainActivity.(anonymous))
任何帮助将不胜感激!
更新:这是我的整个onCreate,然后是onTabChanged方法:
@覆盖 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 的setContentView(R.layout.main);
TabHost tabHost = getTabHost();
TabSpec cat1spec = tabHost.newTabSpec("Category 1");
cat1spec.setIndicator("Category 1");
cat1spec.setContent(R.id.tab1c);
TabSpec cat2spec = tabHost.newTabSpec("Category 2");
cat2spec.setIndicator("Category 2");
cat2spec.setContent(R.id.tab2c);
TabSpec cat3spec = tabHost.newTabSpec("Favourites");
cat3spec.setIndicator("Favourites");
cat3spec.setContent(R.id.tab3c);
tabHost.addTab(cat1spec);
tabHost.addTab(cat2spec);
tabHost.addTab(cat3spec);
getActionBar().setHomeButtonEnabled(true);
tabHost.setOnTabChangedListener(this);
}
@Override
public void onTabChanged(String tabId) {
//Something will happends here
}
答案 0 :(得分:0)
您发布的代码部分看起来很干净,我无法从您发布的错误消息中找到任何内容。可能是您的项目中的一些代码行可能对查找问题有点帮助。
请查看以下代码,检查您是否遵循任何模式。
TabHost tabs = (TabHost) body_view.findViewById(R.id.media_tabs);
tabs.setup();
tabs.addTab(tabs.newTabSpec(ALBUMS_TAB));
tabs.addTab(tabs.newTabSpec(ARTISTS_TAB));
tabs.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
if (tabId.equals(ARTISTS_TAB)) {
artistsFlipper.setDisplayedChild(0);
} else if (tabId.equals(ALBUMS_TAB)) {
albumsFlipper.setDisplayedChild(0);
}
}
});
或
public class MyTabActivity extends TabActivity implements OnTabChangeListener {
private TabHost tabHost;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* Your onCreate code here */
tabHost.setOnTabChangedListener(this);
}
/* ... */
@Override
public void onTabChanged(String tabId) {
/* Your code to handle tab changes */
}
}
以上解决方案来自here