我如何在 viewpager 上使用按钮或任何用户输入视图?

how can i use buttons or any user Input view on viewpager?

基本上我在 viewpager 的第 1 页上有三个按钮。我想 select 其中之一并将值存入我的数据库。但是当我点击任何一个按钮时,它会显示一个错误:

原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' 在 com.example.itsandpro.Signup.PreferenceActivity.onCreate(PreferenceActivity.java:88) 在 android.app.Activity.performCreate(Activity.java:6679) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)

我在 viewpager 的按钮代码是:

myViewPagerAdapter = new MyViewPagerAdapter(); viewPager.setAdapter(myViewPagerAdapter);

    weightloss=findViewById(R.id.reduceweight);
    maintainweight=findViewById(R.id.controlthecalories);
    gainweight=findViewById(R.id.goodphysique);

    weightloss.setOnClickListener(new View.OnClickListener() {
        @SuppressLint("ShowToast")
        @Override
        public void onClick(View v) {
            Toast.makeText(getApplicationContext(),"it worked",Toast.LENGTH_LONG);
        }
    });

我需要的是 select 按钮,但我做不到。

根据 reference at com.example.itsandpro.Signup.PreferenceActivity.onCreate(PreferenceActivity.java:88),您在 Activity 中设置了 OnClickListener,这在您粘贴的代码中并不明显。

当您使用 ViewPager 时,您也在使用 Fragment。

Activity

  • ViewPager

    • 片段 1
    • 片段 2
    • 片段 3

如果您想为 Fragment 1 (Basically i have three buttons on viewpager's page 1) 上的按钮添加点击监听器,您必须 在您的 Fragment 中注册点击监听器,而不是在您的 Activity 因为您 activity 的布局不包含此按钮。

如果我错了,请用 activity 的代码、activity 的布局和第一个片段的代码加上 viewpager。