android - 如何在移动到 viewpager 中的下一页之前检查条件

标签 android radio-button android-viewpager radio-group

在我的应用程序中,我正在尝试使用单选按钮实现小测验,我正在尝试在 viewpager 中实现,现在我的问题是我在 viewpager 中显示了问题,我试图在移动到下一页之前检查条件,需要根据条件显示 toast 消息。但是我遇到了错误并且应用程序崩溃了。 我在下面发布了我的代码部分

t_vPager.setOnPageChangeListener(new OnPageChangeListener()
                {

                    @Override
                    public void onPageSelected(int position)
                    {
                        // TODO Auto-generated method stub
                        System.out.println("checking");

                            switch(position)
                    {
                        case 0:

                            System.out.println("question1 ");

                            id=radioanswergroup.getCheckedRadioButtonId();

                            radioanswerButton = (RadioButton)findViewById(id);

                            System.out.println("answer--"+radioanswerButton.getText());

                            break;

                        case 1:

                            System.out.println("question2 ");
                            break;

                        case 2:

                            System.out.println("question3 ");
                            break;

                        case 3:

                            System.out.println("question4 ");
                            break;
                    }

                                }
                        else 
                        {
                            System.out.println("verify the answer");
                        }

                    }

                    @Override
                    public void onPageScrolled(int arg0, float arg1, int arg2) 
                    {
                        // TODO Auto-generated method stub

                    }

                    @Override
                    public void onPageScrollStateChanged(int arg0)
                    {
                        // TODO Auto-generated method stub

                    }
                });

日志错误

    03-31 13:34:18.743: E/InputEventReceiver(11605): Exception dispatching input event.
03-31 13:34:18.743: E/MessageQueue-JNI(11605): Exception in MessageQueue callback: handleReceiveCallback
03-31 13:34:18.758: E/MessageQueue-JNI(11605): java.lang.NullPointerException
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at com.example.instantenglish.Todaytest$Dailytask$1.onPageSelected(Todaytest.java:234)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.support.v4.view.ViewPager.scrollToItem(ViewPager.java:567)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:551)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.support.v4.view.ViewPager.onTouchEvent(ViewPager.java:2015)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.View.dispatchTouchEvent(View.java:7350)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2412)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2147)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2139)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1476)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.app.Activity.dispatchTouchEvent(Activity.java:2487)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2087)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.View.dispatchPointerEvent(View.java:7535)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3415)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3347)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4456)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4434)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4538)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.os.MessageQueue.nativePollOnce(Native Method)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.os.MessageQueue.next(MessageQueue.java:125)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.os.Looper.loop(Looper.java:124)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at android.app.ActivityThread.main(ActivityThread.java:4921)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at java.lang.reflect.Method.invokeNative(Native Method)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at java.lang.reflect.Method.invoke(Method.java:511)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
03-31 13:34:18.758: E/MessageQueue-JNI(11605):  at dalvik.system.NativeStart.main(Native Method)
03-31 13:34:18.763: D/AndroidRuntime(11605): Shutting down VM
03-31 13:34:18.763: W/dalvikvm(11605): threadid=1: thread exiting with uncaught exception (group=0x41e0b2a0)
03-31 13:34:18.773: E/AndroidRuntime(11605): FATAL EXCEPTION: main
03-31 13:34:18.773: E/AndroidRuntime(11605): java.lang.NullPointerException
03-31 13:34:18.773: E/AndroidRuntime(11605):    at com.example.instantenglish.Todaytest$Dailytask$1.onPageSelected(Todaytest.java:234)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.support.v4.view.ViewPager.scrollToItem(ViewPager.java:567)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:551)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.support.v4.view.ViewPager.onTouchEvent(ViewPager.java:2015)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.View.dispatchTouchEvent(View.java:7350)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2412)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2147)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2139)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1476)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.app.Activity.dispatchTouchEvent(Activity.java:2487)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2087)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.View.dispatchPointerEvent(View.java:7535)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3415)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3347)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4456)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4434)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4538)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.os.MessageQueue.nativePollOnce(Native Method)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.os.MessageQueue.next(MessageQueue.java:125)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.os.Looper.loop(Looper.java:124)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at android.app.ActivityThread.main(ActivityThread.java:4921)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at java.lang.reflect.Method.invokeNative(Native Method)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at java.lang.reflect.Method.invoke(Method.java:511)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
03-31 13:34:18.773: E/AndroidRuntime(11605):    at dalvik.system.NativeStart.main(Native Method)

这是我的完整代码

import java.util.ArrayList;
import java.util.Collections;

import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Switch;
import android.widget.Toast;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;

public class Todaytest extends Activity implements OnClickListener
{

    //urls

            String url="link";

            //json array

            JSONArray jarray;

            //Array list

            ArrayList<String> tst_alquestion = new ArrayList<String>();

            ArrayList<String> tst_alcorrectanswer = new ArrayList<String>();

            ArrayList<String> tst_alwronganswer1 = new ArrayList<String>();

            ArrayList<String> tst_alwronganswer2 = new ArrayList<String>();

            ArrayList<String> tst_alwronganswer3 = new ArrayList<String>();

            ArrayList<String> tst_alwronganswer4 = new ArrayList<String>();

            ArrayList<String> shufanswer=new ArrayList<String>();

            //Radio button

            RadioGroup radioanswergroup;

            RadioButton radioanswerButton,btn1,btn2,btn3,btn4;

            int id,qid=0;

            //text view

            TextView question;

            ViewPager t_vPager;

            PagerAdapter t_padapter;


        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);

            setContentView(R.layout.test);

            t_vPager = (ViewPager) findViewById(R.id.ttpager);

            question=(TextView)findViewById(R.id.qst);

            radioanswergroup=(RadioGroup)findViewById(R.id.radioanswer);

            btn1=(RadioButton)findViewById(R.id.btn1);

            btn2=(RadioButton)findViewById(R.id.btn2);

            btn3=(RadioButton)findViewById(R.id.btn3);

            btn4=(RadioButton)findViewById(R.id.btn4);

            new Dailytask().execute();

            //questionview();


        }



        @Override
        public void onClick(View v) 
        {
            // TODO Auto-generated method stub



        }



        private class Dailytask extends AsyncTask<String, String, JSONObject> 
        {
            private ProgressDialog pDialog;

            @Override
            protected void onPreExecute() 
            {
                super.onPreExecute();



                pDialog = new ProgressDialog(Todaytest.this);

                pDialog.setMessage("Loading Assessment ...");

                pDialog.setIndeterminate(false);

                pDialog.setCancelable(true);

                pDialog.show();
            }

            @Override
            protected JSONObject doInBackground(String... args) 
            {
                Json j = new Json();
                // Getting JSON from URL
                JSONObject json = j.getJSONFromUrl(url);
                return json;
            }

            @Override
            protected void onPostExecute(JSONObject json)
            {

                System.out.println("---------------return today test json------------"+json);

                pDialog.dismiss();

                try
                {
                        // Getting JSON Array from URL
                    JSONObject jobj = json.getJSONObject("response");

                    jarray = jobj.getJSONArray("Test");

                    System.out.println("json array length"+jarray.length());

                    for (int i = 0; i < jarray.length(); i++) 
                    {
                        JSONObject data = jarray.getJSONObject(i);
                        // Storing JSON item in a Variable
                        tst_alquestion.add(data.getString("question"));

                        tst_alcorrectanswer.add(data.getString("correctanswer"));

                        tst_alwronganswer1.add(data.getString("wronganswer1"));

                        tst_alwronganswer2.add(data.getString("wronganswer2"));

                        tst_alwronganswer3.add(data.getString("wronganswer3"));

                        tst_alwronganswer4.add(data.getString("wronganswer4"));

                        System.out.println("correct answer------------>"+tst_alcorrectanswer);
                        System.out.println("wroang ans1------------>"+tst_alwronganswer1);

                        System.out.println("wroang ans2------------>"+tst_alwronganswer2);
                        System.out.println("wroang ans3------------>"+tst_alwronganswer3);
                        System.out.println("wroang ans4------------>"+tst_alwronganswer4);



                    }


                }
                catch(Exception e)
                {

                }

    t_padapter = new testadapter(Todaytest.this, tst_alquestion,tst_alcorrectanswer ,tst_alwronganswer1,tst_alwronganswer2,tst_alwronganswer3,tst_alwronganswer4);


                t_vPager.setAdapter(t_padapter);

                t_vPager.setOnPageChangeListener(new OnPageChangeListener()
                {

                    @Override
                    public void onPageSelected(int position)
                    {
                        // TODO Auto-generated method stub
                        System.out.println("checking"+position);
                        //Toast.makeText(getApplicationContext(), "please answer for above questions",Toast.LENGTH_SHORT ).show();

                        switch(position)
                        {
                            case 0:

                                System.out.println("question1 ");

                                id=radioanswergroup.getCheckedRadioButtonId();

                                radioanswerButton = (RadioButton)findViewById(id);

                                System.out.println("answer--"+radioanswerButton.getText());

                                break;

                            case 1:

                                System.out.println("question2 ");
                                break;

                            case 2:

                                System.out.println("question3 ");
                                break;

                            case 3:

                                System.out.println("question4 ");
                                break;
                        }




                    }

                    @Override
                    public void onPageScrolled(int arg0, float arg1, int arg2) 
                    {
                        // TODO Auto-generated method stub

                    }

                    @Override
                    public void onPageScrollStateChanged(int arg0)
                    {
                        // TODO Auto-generated method stub

                    }
                });


            }
        }



}

测试.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     android:background="#F5DA81" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="15dp"
        android:background="#FFFFFF"
        android:orientation="vertical" >

    <android.support.v4.view.ViewPager
        android:id="@+id/ttpager"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    </LinearLayout>
</LinearLayout>

//测试适配器

package com.example.instantenglish;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;

import org.apache.http.util.ByteArrayBuffer;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Parcelable;
import android.os.StrictMode;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class testadapter extends PagerAdapter
{
    // Declare Variables
    Context context;
    ArrayList<String> question;
    ArrayList<String> answer;
    ArrayList<String> ans1;
    ArrayList<String> ans2;
    ArrayList<String> ans3;
    ArrayList<String> ans4;

    int[] flag;
    LayoutInflater inflater;


    public testadapter(Todaytest tt, ArrayList<String> tst_alquestion,
            ArrayList<String> tst_alcorrectanswer,
            ArrayList<String> tst_alwronganswer1,
            ArrayList<String> tst_alwronganswer2,
            ArrayList<String> tst_alwronganswer3,
            ArrayList<String> tst_alwronganswer4) 
    {
        // TODO Auto-generated constructor stub
        this.context=tt;
        this.question=tst_alquestion;
        this.answer=tst_alcorrectanswer;
        this.ans1=tst_alwronganswer1;
        this.ans2=tst_alwronganswer2;
        this.ans3=tst_alwronganswer3;
        this.ans4=tst_alwronganswer4;
    }

        @Override
    public int getCount() {
        return question.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == ((LinearLayout) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position)
    {

        // Declare Variables
        TextView txtquestion;
        RadioButton radioanswerButton,btn1,btn2,btn3,btn4,btn5;        //TextView txtpopulation;
        RadioGroup radioanswergroup;   

        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View itemView = inflater.inflate(R.layout.todaytest, container,
                false);

        // Locate the TextViews in viewpager_item.xml
        txtquestion = (TextView) itemView.findViewById(R.id.qst);
        radioanswergroup=(RadioGroup)itemView.findViewById(R.id.radioanswer);

        btn1=(RadioButton)itemView.findViewById(R.id.btn1);

        btn2=(RadioButton)itemView.findViewById(R.id.btn2);

        btn3=(RadioButton)itemView.findViewById(R.id.btn3);

        btn4=(RadioButton)itemView.findViewById(R.id.btn4);

        btn5=(RadioButton)itemView.findViewById(R.id.btn5);


        // Capture position and set to the TextViews
        txtquestion.setText(question.get(position));
        btn1.setText(answer.get(position));
        btn2.setText(ans1.get(position));
        btn3.setText(ans2.get(position));
        btn4.setText(ans3.get(position));
        btn5.setText(ans4.get(position));
        //txtpopulation.setText(population[position]);

        // Locate the ImageView in viewpager_item.xml

        // Add viewpager_item.xml to ViewPager
        ((ViewPager) container).addView(itemView);

        return itemView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        // Remove viewpager_item.xml from ViewPager
        ((ViewPager) container).removeView((LinearLayout) object);

    }

    @Override
    public void restoreState(Parcelable arg0, ClassLoader arg1) {
        // TODO Auto-generated method stub

    }

    @Override
    public Parcelable saveState() {
            // TODO Auto-generated method stub
            return null;
    }

    @Override
    public void startUpdate(View arg0) {
            // TODO Auto-generated method stub

    }   

  }

测试适配器 xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
     android:background="#F5DA81">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="#FFFFFF" >

        <TextView
            android:id="@+id/qst"
            android:layout_width="200dp"
            android:layout_height="50dp"
            android:layout_gravity="center"
            android:layout_marginTop="20dp"
            android:background="@drawable/txtview"
            android:gravity="center"
            android:text="Questions"
            android:textColor="#000000"
            android:textStyle="bold" />

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:layout_marginTop="25dp" >

                <RadioGroup
                    android:id="@+id/radioanswer"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" >


                <RadioButton
                    android:id="@+id/btn1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/rbtn1" 
                    android:textColor="#000000"/>

                <RadioButton
                    android:id="@+id/btn2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:text="@string/rbtn2"
                    android:textColor="#000000" />

                <RadioButton
                    android:id="@+id/btn3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:text="@string/rbtn3"
                    android:textColor="#000000" />

                  <RadioButton
                      android:id="@+id/btn4"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:layout_marginTop="15dp"
                      android:text="@string/rbtn4"
                      android:textColor="#000000" />

                  <RadioButton
                      android:id="@+id/btn5"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:layout_marginTop="15dp"
                      android:text="@string/rbtn5"
                      android:textColor="#000000" />

                 </RadioGroup>



        </TableRow>

    </LinearLayout>

</LinearLayout>

最佳答案

如您的详细信息所示,您正在使用 getCheckedRadioButtonId() 但在您的 xml 中没有检查 RadioButton。所以只需检查如下所示的 RedioButton

<RadioButton
       android:id="@+id/btn3"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginTop="15dp"
       android:text="@string/rbtn3"
       android:checked="true"
       android:textColor="#000000" />

并且在获取带有选中 id 的按钮之前也使用条件。像下面这样使用

int id=radioanswergroup.getCheckedRadioButtonId();
if(id>0)  
radioanswerButton = (RadioButton)findViewById(id); 

关于android - 如何在移动到 viewpager 中的下一页之前检查条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22755806/

相关文章:

android - 以编程方式将单选按钮对齐到单选组中的中心

html - 为什么单选按钮不能是 "readonly"?

android - 如何在 fragment 中使用 ViewPager

android - ViewPager 不显示 API 级别 >18 的内容

java - 如何在 Android 应用程序的外部类中使用 Java 加载此文本文件?

安卓 : Only one button clickable at once

java - 获取实际触摸位置 LibGDX

android - Android 12 上的应用链接 `legacy_failure` 验证错误

ruby-on-rails - Rails 4.2.7.1 没有路由匹配 [POST] 更新

Android: 自定义 ViewPager 动画