如何在ViewPager上一页的移动之前检查条件?

3
在我的应用中,我试图使用单选按钮实现一个小测验,并尝试在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

                    }
                });


            }
        }



}

test.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>

switch(position) 改为 switch(arg0),并附上 logcat 结果以提出问题并获得更多帮助。 - ρяσѕρєя K
你在哪一行遇到了这个异常? - maddy d
@ρяσѕρєяK,感谢您的回复。抱歉,我错误地发布了它,我只是将其用作位置... - Somasundaram NP
@maddy,我在这一行代码中遇到了错误:id=radioanswergroup.getCheckedRadioButtonId(); - Somasundaram NP
@DamienR。我已经发布了我的代码问题,请检查一下... - Somasundaram NP
显示剩余10条评论
2个回答

2

根据您提供的信息,您正在使用 getCheckedRadioButtonId() 方法,但是在您的 XML 中没有任何一个 RadioButton 被选中。因此,请像下面这样勾选一个 RadioButton。

<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); 

1
您得到了一个空指针异常,因为您正在尝试使用findViewById从text.xml中找到您的RadioGroup radioanswergroup。
此时(在onCreate中),由于您将在AsyncTask中执行它,因此您的ViewPager尚未实例化。这就是为什么您的radioanswergroup为空,对于以下变量也是一样:question、btn1、btn2、btn3和btn4。
希望这可以帮助您。

谢谢您的回复,那么我应该在哪里实现这个Radiogroup呢? - Somasundaram NP
我猜你可以在测试适配器中完成它,因为你可能会将单选视图添加到其中一个适配器中? - Damien R.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接