页面跳转后bottomNavigationView监听器显示空指针 程序闪退

qq_35630168 2019-03-21 08:31:27
package com.example.test3;

import android.annotation.SuppressLint;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;




public class Main2Activity extends AppCompatActivity {

private ViewPager viewPager;
private MenuItem menuItem;
private BottomNavigationView bottomNavigationView;

@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();// 隐藏ActionBar
viewPager = (ViewPager) findViewById(R.id.main_viewpager);
bottomNavigationView = (BottomNavigationView) findViewById(R.id.main_bottom_nav_view);


bottomNavigationView.setOnNavigationItemSelectedListener(
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.btm_nav_item1:
viewPager.setCurrentItem(0);
break;
case R.id.btm_nav_item2:
viewPager.setCurrentItem(1);
break;

}
return false;
}
});

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
if (menuItem != null) {
menuItem.setChecked(false);
} else {
bottomNavigationView.getMenu().getItem(0).setChecked(false);
}
menuItem = bottomNavigationView.getMenu().getItem(position);
menuItem.setChecked(true);
}

@Override
public void onPageScrollStateChanged(int state) {
}
});

// 禁止ViewPager滑动
viewPager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});

setupViewPager(viewPager);
}

private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());

adapter.addFragment(new oneFragment());

adapter.addFragment(new twoFragment());
viewPager.setAdapter(adapter);
}
}



这是第二个acticity,在这上面添加了fragment,达到滑动的目的,在这之前还有一个登录界面,之前没有设置登录界面直接就是这个acticity,代码一样的可以运行 ,添加了一个登录界面之后 点击登录按钮就闪退,然后报错 bottomNavigationView这里出现空指针,各位大神能看看吗

...全文
144 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jzp12 2019-04-01
  • 打赏
  • 举报
回复
viewPager = (ViewPager) findViewById(R.id.main_viewpager);
->
viewPager = (ViewPager) View.findViewById(R.id.main_viewpager);

再不行clean一下Project,再compile安装
zhang106209 2019-04-01
  • 打赏
  • 举报
回复
将你的activity_main.xml贴出来看看
王能 2019-04-01
  • 打赏
  • 举报
回复
点进去你的activity_main肯定没有main_bottom_nav_view这个id

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧