我在多个活动中获得了相同的NavigationView,因此我想拥有一个自己的类,为该NavigationView实现侦听器,而不是在每个活动中都具有相同的代码。

所以我上了这个课:

public class NavigationViewListener implements NavigationView.OnNavigationItemSelectedListener{
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id == R.id.nav_my_profile) {

            // Open new Activity here
        }
    }
}


但是我没有上下文或其他东西来打开一个新的活动/关闭从中触发该NavigationItem事件的活动。

我怎样才能做到这一点?

最佳答案

有两种方法
1.使用构造函数参数将上下文传递给该NavigationViewListener

//add these lines to your NavigationViewListener
private Context context;

public NavigationViewListener(Context context){
     this.context=context;
}


来自活动传递上下文
new NavigationViewListener(YourActivity.this)

2.使用界面与活动交谈。

10-07 19:05
查看更多