需要有关从数据库获取数据的帮助

时间:2011-09-06 23:59:50

标签: android mysql database-connection

我创建了一个程序,当在编辑文本空间中键入名字时,它会显示我创建的数据库(MySQL)中具有该名字的人的信息。但是,当我输入Eric并按下D-pad时,除了文本被删除(或重置)之外没有任何反应。我该怎么做才能解决它?

public class PS extends Activity {
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    //get the two controls we created earlier, also with the resource reference and the id

    final EditText et_Text = (EditText)findViewById(R.id.et_Text);

    //add new KeyListener Callback (to record key input)
    et_Text.setOnKeyListener(new OnKeyListener()
    {
        //function to invoke when a key is pressed
        public boolean onKey(View v, int keyCode, KeyEvent event)
        {
            //check if there is 
            if (event.getAction() == KeyEvent.ACTION_DOWN)
            {
                //check if the right key was pressed
                if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER)
                {
                    InputStream is = null;
                    String result = "";


                    //the name data to send
                    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                    nameValuePairs.add(new BasicNameValuePair("name",et_Text.getText().toString()));

                    //http post

                    try{
                            HttpClient httpclient = new DefaultHttpClient();
                            HttpPost httppost = new HttpPost("http://*******/sampleDB/testSend.php");
                            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                            HttpResponse response = httpclient.execute(httppost);
                            HttpEntity entity = response.getEntity();
                            is = entity.getContent();
                    }catch(Exception e){
                            Log.e("log_tag", "Error in http connection "+e.toString());
                    }
                    //convert response to string
                    try{
                            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                            StringBuilder sb = new StringBuilder();
                            String line = null;
                            while ((line = reader.readLine()) != null) {
                                    sb.append(line + "\n");
                            }

                            is.close();

                            result=sb.toString();
                    }catch(Exception e){
                            Log.e("log_tag", "Error converting result "+e.toString());
                    }

                    //parse json data
                    try{
                            JSONArray jArray = new JSONArray(result);
                            for(int i=0;i<jArray.length();i++){
                                    JSONObject json_data = jArray.getJSONObject(i);
                                    Log.i("log_tag","PersonID: "+json_data.getInt("personID")+
                                            ", FirstName: "+json_data.getString("FirstName")+
                                            ", LastName: "+json_data.getString("LastName")+
                                            ", Age: "+json_data.getInt("Age")
                                    );

                    } 

                    }catch(JSONException e){
                            Log.e("log_tag", "Error parsing data "+e.toString());
                    };




                  et_Text.setText("");                            
                                    //and clear the EditText control
                return true;
                }

                }

            return false;
        }
    }); 

}
}

这就是我在Log Cat中得到的: “09-06 21:03:16.375:ERROR / log_tag(22920):解析数据时出错org.json.JSONException:Value

1 个答案:

答案 0 :(得分:0)

日志中发生了什么?是否有任何异常被提出?您正在清除行

中的EditText
 et_Text.setText("");

这样可以说明为什么要重置/清除