java如何在ViewPage中从活动移动到片段?找不到片段id的视图
我刚开始学安卓。我有一个活动类,我想将其重定向到导航栏的ViewPage中的一个片段? 我尝试了很多方法,但都不管用。我希望能帮上忙!!! 我的代码: 有一个主要的活动。java有一个ViewPager和BottomNavigationView
public class MainActivity extends AppCompatActivity {
BottomNavigationView navigationView;
ViewPager mViewPager;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
navigationView = findViewById(R.id.nav);
mViewPager = findViewById(R.id.view_pager);
setUpViewPager();
navigationView.setOnNavigationItemReselectedListener(new BottomNavigationView.OnNavigationItemReselectedListener() {
@Override
public void onNavigationItemReselected(@NonNull MenuItem item) {
if(item.getItemId()== R.id.cld){
mViewPager.setCurrentItem(0);
} else if(item.getItemId()== R.id.tdl){
mViewPager.setCurrentItem(1);
}else if(item.getItemId()== R.id.dnr){
mViewPager.setCurrentItem(2);
}else if(item.getItemId()== R.id.us){
mViewPager.setCurrentItem(3);
}
}
});
try {
Field field = CursorWindow.class.getDeclaredField("sCursorWindowSize");
field.setAccessible(true);
field.set(null, 100 * 1024 * 1024); //the 100MB is the new size
} catch (Exception e) {
e.printStackTrace();
}
}
private void setUpViewPager() {
ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager(), FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
mViewPager.setAdapter(viewPagerAdapter);
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
switch (position){
case 1:
navigationView.getMenu().findItem(R.id.tdl).setChecked(true);
break;
case 2:
navigationView.getMenu().findItem(R.id.dnr).setChecked(true);
break;
case 3:
navigationView.getMenu().findItem(R.id.us).setChecked(true);
break;
default: navigationView.getMenu().findItem(R.id.cld).setChecked(true);
break;
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
}
ViewPageApdater类
public class ViewPagerAdapter extends FragmentStatePagerAdapter {
public ViewPagerAdapter(@NonNull FragmentManager fm, int behavior) {
super(fm, behavior);
}
@NonNull
@Override
public Fragment getItem(int position) {
switch (position){
case 1: return new ListTodo();
case 2: return new dinary_form();
case 3: return new UserInfor();
case 0:
default: return new Calendar();
}
}
@Override
public int getCount() {
return 5;
}
}
活动课我想搬家,但我有个问题: JAVAlang.IllegalArgumentException:未找到片段列表的id 0x7f0a01d3(com.example.projectminibook:id/view_pager)的视图{bbdabd4(d10d7649-01eb-4b76-8342-fbf47138d234)id=0x7f0a01d3}
我从activitymain中的ViewPager布局id中获取id/view_纸张。我不知道哪里错了
public class AddTodo extends AppCompatActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button btnCancel = findViewById(R.id.btnCancel);
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ListTodo fragment = new ListTodo();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.view_pager,fragment);
fragmentTransaction.commit();
}
});
}
}
ListTodo。爪哇
public class ListTodo extends Fragment{
//mycode
}
我希望你能帮助我。多谢各位
# 1 楼答案
只需在^{中尝试下面的代码
我想在你的
MainActivity
中更新这段代码之后,你的问题就解决了。快乐编码;)更新
上面的代码也有一些小改动&;对于
viewPager
方法,请使用下面的代码编辑onPageSelected()
方法的代码