0

我正在尝试使用底部导航视图在单击时打开另一个活动。出于某种原因,我在最后一行出现错误,它应该定义 click 函数。我在另一个项目上对其进行了测试,并且效果很好。

这是我的活动的结尾部分:

private BottomNavigationView.OnNavigationItemSelectedListener 
mOnNavigationItemSelectedListener
        = new BottomNavigationView.OnNavigationItemSelectedListener() {

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.navigation_home:
                Intent kampIntent = new Intent(SortimentActivity.this, CampaignActivity.class);
                startActivity(kampIntent);
                mTextMessage.setText(R.string.title_home);
                break;
            case R.id.navigation_dashboard:
                mTextMessage.setText(R.string.title_dashboard);
                break;
        }
        return false;


        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
    }

我在另一个项目中尝试了完全相同的代码,并且成功了。我在这里得到的错误

'无法解析符号' .setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

关于这里出了什么问题的任何想法?

4

1 回答 1

5

该错误告诉您它没有找到 mOnNavigationItemSelectedListener 因为您在其定义中调用它

您必须将这两行移到侦听器声明之外。将它们放在 onCreate 方法上,例如:

BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
于 2018-09-12T11:10:51.147 回答