0

我正在申请测验。用于问题描述的单选按钮和 textView 的内容文本设置正确...但是当我单击任何单选按钮时...应用程序被强制关闭..请检查代码..并告诉我是什么要做的修改..

这是我的jsp页面..

 <%@page contentType="text/html; charset=UTF-8"%>
<%@page import="org.json.simple.JSONObject"%>
<%@page import="java.util.*,java.sql.*"%>

<%!
Connection con;
PreparedStatement ps;
ResultSet rs;
String x;

%>

<%
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","pro","pro");
ps=con.prepareStatement("select * from c_question where id=1");
rs=ps.executeQuery();

JSONObject obj=new JSONObject();
obj.put("id",rs.getString(1));
obj.put("desc",rs.getString(2));
obj.put("a",rs.getString(3));
obj.put("b",rs.getString(4));
obj.put("c",rs.getString(5));
obj.put("d",rs.getString(6));
obj.put("ans",rs.getString(7));
out.print(obj);
out.flush();
%>

这是我的活动... import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
import android.widget.Toast;

public class JsonDemo extends Activity 
{
JSONObject json;
HttpClient client;
TextView q_desc,c_or_w,id_check;
RadioButton rb_a,rb_b,rb_c,rb_d;
RadioGroup rg;
String ans;
int id;


final static String URL="http://10.0.2.2:7001/project/json.jsp";

@Override
protected void onCreate(Bundle savedInstanceState) {

    // TODO Auto-generated method stub

    super.onCreate(savedInstanceState);

    setContentView(R.layout.result_json);

    q_desc=(TextView)findViewById(R.id.q_desc);
    c_or_w=(TextView)findViewById(R.id.corr_incorrect);
    id_check=(TextView)findViewById(R.id.id_check);
    rg=(RadioGroup)findViewById(R.id.rg_option);
    rb_a=(RadioButton)findViewById(R.id.opt_a);
    rb_b=(RadioButton)findViewById(R.id.opt_b);
    rb_c=(RadioButton)findViewById(R.id.opt_c);
    rb_d=(RadioButton)findViewById(R.id.opt_d);

    client=new DefaultHttpClient();


    new Read().execute("desc");

}
   public  JSONObject getData()throws   ClientProtocolException,IOException,JSONException
   {

    StringBuilder url=new StringBuilder(URL);
    HttpGet get=new HttpGet(url.toString());
    HttpResponse r=client.execute(get);



    int status=r.getStatusLine().getStatusCode();

    if(status == 200)
    {
        HttpEntity e=r.getEntity();
        String data=EntityUtils.toString(e);
        JSONObject last=new JSONObject(data);
        return last;

    }
    else
    {
        Toast.makeText(JsonDemo.this, "error", Toast.LENGTH_SHORT);
        return null;
    }

}



 public class Read extends AsyncTask<String,Integer,JSONObject> implements OnCheckedChangeListener
{


@Override
protected void onPostExecute(JSONObject result) {
    // TODO Auto-generated method stub
    try {
        String desc=json.getString("desc");
        String option_a=json.getString("a");
        String option_b=json.getString("b");
        String option_c=json.getString("c");
        String option_d=json.getString("d");
        ans=json.getString("ans");
        q_desc.setText(desc);
        rb_a.setText(option_a);
        rb_b.setText(option_b);
        rb_c.setText(option_c);
        rb_d.setText(option_d);
        rg.setOnCheckedChangeListener(this);

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

@Override
protected JSONObject doInBackground(String... params) {
    try {
        json=getData();
        return json;
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
}

public void onCheckedChanged(RadioGroup rg, int checkedId) {

    switch(checkedId)
    {
    case R.id.opt_a:
    {
        if(ans.equalsIgnoreCase("a"))
        {

            id=id+1;
            c_or_w.setText("Correct");
            id_check.setText(id);           
        }
        else
        {
            id=id+1;
            c_or_w.setText("InCorrect");
            id_check.setText(id);

        }
        break;

    }
    case R.id.opt_b:
    {
        if(ans.equalsIgnoreCase("b"))
        {

            id=id+1;
            c_or_w.setText("Correct");
            id_check.setText(id);           
        }
        else
        {
            id=id+1;
            c_or_w.setText("InCorrect");
            id_check.setText(id);

        }
        break;
    }
    case R.id.opt_c:
    {
        if(ans.equalsIgnoreCase("c"))
        {

            id=id+1;
            c_or_w.setText("Correct");
            id_check.setText(id);           
        }
        else
        {
            id=id+1;
            c_or_w.setText("InCorrect");
            id_check.setText(id);

        }
        break;
    }
    case R.id.opt_d:
    {
        if(ans.equalsIgnoreCase("d"))
        {

            id=id+1;
            c_or_w.setText("Correct");
            id_check.setText(id);           
        }
        else
        {
            id=id+1;
            c_or_w.setText("InCorrect");
            id_check.setText(id);

        }
        break;
    }

    }

}


}

}

原木猫...

 04-06 09:48:10.849: W/ResourceType(354): No package identifier when getting value for resource number 0x00000001
04-06 09:48:10.859: D/AndroidRuntime(354): Shutting down VM
04-06 09:48:10.859: W/dalvikvm(354): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
04-06 09:48:10.889: E/AndroidRuntime(354): FATAL EXCEPTION: main
04-06 09:48:10.889: E/AndroidRuntime(354): android.content.res.Resources$NotFoundException: String resource ID #0x1
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.content.res.Resources.getText(Resources.java:201)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.widget.TextView.setText(TextView.java:2817)
04-06 09:48:10.889: E/AndroidRuntime(354):  at com.campuspro.start.JsonDemo.onCheckedChanged(JsonDemo.java:151)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.widget.RadioGroup.setCheckedId(RadioGroup.java:172)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.widget.RadioGroup.access$600(RadioGroup.java:52)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.widget.RadioGroup$CheckedStateTracker.onCheckedChanged(RadioGroup.java:342)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.widget.CompoundButton.setChecked(CompoundButton.java:127)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.widget.CompoundButton.toggle(CompoundButton.java:86)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.widget.RadioButton.toggle(RadioButton.java:69)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.widget.CompoundButton.performClick(CompoundButton.java:98)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.view.View$PerformClick.run(View.java:8816)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.os.Handler.handleCallback(Handler.java:587)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.os.Handler.dispatchMessage(Handler.java:92)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.os.Looper.loop(Looper.java:123)
04-06 09:48:10.889: E/AndroidRuntime(354):  at android.app.ActivityThread.main(ActivityThread.java:4627)
04-06 09:48:10.889: E/AndroidRuntime(354):  at java.lang.reflect.Method.invokeNative(Native Method)
04-06 09:48:10.889: E/AndroidRuntime(354):  at java.lang.reflect.Method.invoke(Method.java:521)
04-06 09:48:10.889: E/AndroidRuntime(354):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-06 09:48:10.889: E/AndroidRuntime(354):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-06 09:48:10.889: E/AndroidRuntime(354):  at dalvik.system.NativeStart.main(Native Method)
04-06 09:48:13.419: I/Process(354): Sending signal. PID: 354 SIG: 9
04-06 09:51:50.868: W/ResourceType(388): No package identifier when getting value for resource number 0x00000001
 04-06 09:51:50.868: D/AndroidRuntime(388): Shutting down VM
04-06 09:51:50.879: W/dalvikvm(388): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
04-06 09:51:50.909: E/AndroidRuntime(388): FATAL EXCEPTION: main
04-06 09:51:50.909: E/AndroidRuntime(388): android.content.res.Resources$NotFoundException: String resource ID #0x1
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.content.res.Resources.getText(Resources.java:201)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.widget.TextView.setText(TextView.java:2817)
04-06 09:51:50.909: E/AndroidRuntime(388):  at com.campuspro.start.JsonDemo$Read.onCheckedChanged(JsonDemo.java:147)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.widget.RadioGroup.setCheckedId(RadioGroup.java:172)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.widget.RadioGroup.access$600(RadioGroup.java:52)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.widget.RadioGroup$CheckedStateTracker.onCheckedChanged(RadioGroup.java:342)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.widget.CompoundButton.setChecked(CompoundButton.java:127)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.widget.CompoundButton.toggle(CompoundButton.java:86)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.widget.RadioButton.toggle(RadioButton.java:69)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.widget.CompoundButton.performClick(CompoundButton.java:98)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.view.View$PerformClick.run(View.java:8816)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.os.Handler.handleCallback(Handler.java:587)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.os.Handler.dispatchMessage(Handler.java:92)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.os.Looper.loop(Looper.java:123)
04-06 09:51:50.909: E/AndroidRuntime(388):  at android.app.ActivityThread.main(ActivityThread.java:4627)
04-06 09:51:50.909: E/AndroidRuntime(388):  at java.lang.reflect.Method.invokeNative(Native Method)
04-06 09:51:50.909: E/AndroidRuntime(388):  at java.lang.reflect.Method.invoke(Method.java:521)
04-06 09:51:50.909: E/AndroidRuntime(388):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-06 09:51:50.909: E/AndroidRuntime(388):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-06 09:51:50.909: E/AndroidRuntime(388):  at dalvik.system.NativeStart.main(Native Method)
04-06 10:08:07.398: W/ResourceType(399): No package identifier when getting value for resource number 0x00000001
04-06 10:08:07.508: D/AndroidRuntime(399): Shutting down VM
04-06 10:08:07.508: W/dalvikvm(399): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
04-06 10:08:07.618: E/AndroidRuntime(399): FATAL EXCEPTION: main
04-06 10:08:07.618: E/AndroidRuntime(399): android.content.res.Resources$NotFoundException: String resource ID #0x1
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.content.res.Resources.getText(Resources.java:201)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.widget.TextView.setText(TextView.java:2817)
04-06 10:08:07.618: E/AndroidRuntime(399):  at com.campuspro.start.JsonDemo$Read.onCheckedChanged(JsonDemo.java:147)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.widget.RadioGroup.setCheckedId(RadioGroup.java:172)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.widget.RadioGroup.access$600(RadioGroup.java:52)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.widget.RadioGroup$CheckedStateTracker.onCheckedChanged(RadioGroup.java:342)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.widget.CompoundButton.setChecked(CompoundButton.java:127)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.widget.CompoundButton.toggle(CompoundButton.java:86)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.widget.RadioButton.toggle(RadioButton.java:69)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.widget.CompoundButton.performClick(CompoundButton.java:98)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.view.View$PerformClick.run(View.java:8816)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.os.Handler.handleCallback(Handler.java:587)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.os.Handler.dispatchMessage(Handler.java:92)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.os.Looper.loop(Looper.java:123)
04-06 10:08:07.618: E/AndroidRuntime(399):  at android.app.ActivityThread.main(ActivityThread.java:4627)
04-06 10:08:07.618: E/AndroidRuntime(399):  at java.lang.reflect.Method.invokeNative(Native Method)
04-06 10:08:07.618: E/AndroidRuntime(399):  at java.lang.reflect.Method.invoke(Method.java:521)
04-06 10:08:07.618: E/AndroidRuntime(399):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-06 10:08:07.618: E/AndroidRuntime(399):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-06 10:08:07.618: E/AndroidRuntime(399):  at dalvik.system.NativeStart.main(Native Method)
04-06 10:08:12.848: I/Process(399): Sending signal. PID: 399 SIG: 9
4

1 回答 1

2

您必须setText as a String设置为Integer....so 将其转换为String

 id_check.setText(""+id);    

或者

  id_check.setText(Integer.toString(id));  
于 2012-04-06T04:54:57.437 回答