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这里出现空指针,各位大神能看看吗
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这里出现空指针,各位大神能看看吗
解决方案 »
- 如何设置Dialog的标题栏的颜色?
- Android如何实现进度条-进度圆角
- 自动登录功能
- 怎么取消setSingleChoiceItems 的焦点?
- 如何实现在不能上外网情况下非界面情况下获取经纬度定位
- android2.3 USB网卡,USB以太网
- Spinner添加/删除数据,求科普
- android ndk编译的C++可执行程序已经能够运行了,但如何实现在android系统上自启动呢?
- 安卓开发导入第三方jar包报错 verifyerror,都尝试一天半了
- 安卓开发求大腿
- 只有.key文件,注意不是keystore文件,如何查看它的sha256等信息。
- 华住会APP在收集个人隐私吗????
->
viewPager = (ViewPager) View.findViewById(R.id.main_viewpager);再不行clean一下Project,再compile安装