我正在使用 BottomBar在我的主要 Activity 中,我正在关注 github 中的示例代码,他在其中将监听器添加到选项卡:
this.bottomBar = (BottomBar) findViewById(R.id.bottomBar);
bottomBar.setOnTabSelectListener(new OnTabSelectListener() {
@Override
public void onTabSelected(@IdRes int tabId) {
switch (tabId) {
case R.id.tab_evaluate :
Toast.makeText(getApplicationContext(),"Evaluate",Toast.LENGTH_SHORT).show();
break;
case R.id.tab_info:
Toast.makeText(getApplicationContext(),"INfo",Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(getApplicationContext(),"Other",Toast.LENGTH_SHORT).show();
break;
}
}
});
它运行完美,我看到了所有的 toast 。
我的问题:在我的主要 Activity 中,我想根据所选选项卡调用两种方法:
private void showQrCodeView(){
this.contentFrame.setVisibility(View.GONE);
this.qrCodeReaderView.setVisibility(View.VISIBLE);
}
private void hideQrCodeView(){
this.contentFrame.setVisibility(View.VISIBLE);
this.qrCodeReaderView.setVisibility(View.GONE);
}
为此,我尝试了这个,它不会引发任何错误,但也不起作用。
case R.id.tab_evaluate :
Toast.makeText(getApplicationContext(),"Evaluate",Toast.LENGTH_SHORT).show();
MainActivity.this.showQrCodeView();
break;
我的问题是如何从 OnTabSelectListener
调用我的 MainActivity 方法?
最佳答案
刚弄清楚问题出在哪里:方法必须公开。
关于java - Android:如何从监听器调用 Activity 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44337961/