java - Android:如何从监听器调用 Activity 的方法

标签 java android listener bottombar

我正在使用 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/

相关文章:

java - 提交大小写更改被忽略

android - 如何通过 xml 而不是通过 java 代码设置自定义(arial)类型的面孔

java - 从 userPreferences 中检索空 Set<String>

javascript - 在 IE javascript 中添加 eventListener

java - 服务器在Java中同时处理来自多个客户端的 "n"请求

java - 使 ServletContextListener 具有 Spring 意识

java - CDI - 事件观察者

android - android 中总是 FileNotFoundException 权限被拒绝

Android Listener 关闭上下文菜单

java - 使用 AbstractTableModel 获取 JTable 中的选定行