0

助けてください..これは、以下のコードのJSONに問題があります。PHPファイルに解析できません.. Androidアプリはphpmyadmin@MySQLサーバーとリンクしています.... PHPファイルを使用しています。これは TextView を使用してデータを送信します。データは他のページから渡されます。下のテキストビューでそれを保持します。しかし、データが送信したい間。JSONは機能せず、作成したアプリは停止し、失敗したアプリケーションが検出されました。私のphpファイルには問題はありませんが、このコードでは何が問題なのかわかりません..try関数に到達していないと思います..phpファイルを使用してこのアプリからmysqlサーバーにデータを挿入するための助けが必要です.

         @Override
         protected void onPreExecute() {
             super.onPreExecute();
            pDialog = new ProgressDialog(MainActivity3.this);
            pDialog.setMessage("Sending Aduan....");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
         }

         protected String doInBackground(String... args) {


             String nama = txtView1.getText().toString();
             String alamat = txtView2.getText().toString();
             String no_ic = txtView3.getText().toString();
             String mobile = txtView4.getText().toString();
             String telefon = txtView5.getText().toString();
             String email = txtView6.getText().toString();
             String kenyataan = txtView7.getText().toString();
             String pelaksana = txtView8.getText().toString();
             String lokasi = txtView9.getText().toString();
             String daerah = txtView10.getText().toString();    

             List<NameValuePair> params = new ArrayList<NameValuePair>();
             params.add(new BasicNameValuePair("nama", nama));
             params.add(new BasicNameValuePair("alamat", alamat));
             params.add(new BasicNameValuePair("no_ic", no_ic));
             params.add(new BasicNameValuePair("mobile", mobile));
             params.add(new BasicNameValuePair("telefon", telefon));
             params.add(new BasicNameValuePair("email", email));
             params.add(new BasicNameValuePair("kenyataan", kenyataan));
             params.add(new BasicNameValuePair("pelaksana", pelaksana));
             params.add(new BasicNameValuePair("daerah", daerah));
             params.add(new BasicNameValuePair("lokasi", lokasi));



             JSONObject json = jsonParser.makeHttpRequest(url_create_aduan,"POST", params);

             Log.e("Create Response", json.toString());

             try {
                 int success = json.getInt(TAG_SUCCESS);

                 if (success == 1) {

                   Intent i = new Intent(getApplicationContext(),Rujukan.class);
                 startActivity(i);
                 finish();
                } else {
                }
                } catch (JSONException e) {
                        e.printStackTrace();
                    }
             return null;
         }


         protected void onPostExecute(String file_url) {

             pDialog.dismiss();
         }
     }
4

1 に答える 1

0

問題 :

doInBackgroundのメソッドから UI 関連のタスクを実行しようとしていますAsyncTask

解決 :

UI スレッドから UI 要素にアクセスすることはできないため、すべてのアイテム フォームdoInBackground を次のように移動onPreExecuteしますonPostExecute

String nama,alamat,no_ic,mobile,telefon;
String email,kenyataan,pelaksana,lokasi,daerah;

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

              nama = txtView1.getText().toString();
              alamat = txtView2.getText().toString();
              no_ic = txtView3.getText().toString();
              mobile = txtView4.getText().toString();
              telefon = txtView5.getText().toString();
              email = txtView6.getText().toString();
              kenyataan = txtView7.getText().toString();
              pelaksana = txtView8.getText().toString();
              lokasi = txtView9.getText().toString();
              daerah = txtView10.getText().toString();  

            pDialog = new ProgressDialog(MainActivity3.this);
            pDialog.setMessage("Sending Aduan....");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
         }

         protected String doInBackground(String... args) {


             List<NameValuePair> params = new ArrayList<NameValuePair>();
             params.add(new BasicNameValuePair("nama", nama));
             params.add(new BasicNameValuePair("alamat", alamat));
             params.add(new BasicNameValuePair("no_ic", no_ic));
             params.add(new BasicNameValuePair("mobile", mobile));
             params.add(new BasicNameValuePair("telefon", telefon));
             params.add(new BasicNameValuePair("email", email));
             params.add(new BasicNameValuePair("kenyataan", kenyataan));
             params.add(new BasicNameValuePair("pelaksana", pelaksana));
             params.add(new BasicNameValuePair("daerah", daerah));
             params.add(new BasicNameValuePair("lokasi", lokasi));


             int success=0;
             JSONObject json = jsonParser.
               makeHttpRequest(url_create_aduan,"POST", params);

             Log.e("Create Response", json.toString());

             try {
                  success = json.getInt(TAG_SUCCESS);

                } catch (JSONException e) {
                  e.printStackTrace();
                  success=0;
                  }
             return ""+success;
         }


         protected void onPostExecute(String result) {

                pDialog.dismiss();
                if (Integer.parseInt(result) == 1) {

                   Intent i = new Intent(
                   Current_Activity.this,Rujukan.class);
                 startActivity(i);
                 finish();
                } else {
                   //your task here
                }
         }
     }
于 2012-12-15T11:39:58.883 に答える