연결

2014-01-27 4 views
0

이 코드 "연결

private static String url_create_product = "http://10.0.2.2/android_connect/create_product.php"; 


class CreateNewProduct extends AsyncTask<String, String, String> { 

    /** 
    * Before starting background thread Show Progress Dialog 
    * */ 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(NewProductActivity.this); 
     pDialog.setMessage("Creating Product.."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(true); 
     pDialog.show(); 
    } 

    /** 
    * Creating product 
    * */ 
    protected String doInBackground(String... args) { 
     String name = inputName.getText().toString(); 
     String price = inputPrice.getText().toString(); 
     String description = inputDesc.getText().toString(); 

     // Building Parameters 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("name", name)); 
     params.add(new BasicNameValuePair("price", price)); 
     params.add(new BasicNameValuePair("description", description)); 

     // getting JSON Object 
     // Note that create product url accepts POST method 
     JSONObject json = jsonParser.makeHttpRequest(url_create_product, 
       "POST", params); 

     // check log cat fro response 
     Log.d("Create Response", json.toString()); 

     // check for success tag 
     try { 
      int success = json.getInt(TAG_SUCCESS); 

      if (success == 1) { 
       // successfully created product 
       Intent i = new Intent(getApplicationContext(), AllProductsActivity.class); 
       startActivity(i); 

       // closing this screen 
       finish(); 
      } else { 
       // failed to create product 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 

    /** 
    * After completing background task Dismiss the progress dialog 
    * **/ 
    protected void onPostExecute(String file_url) { 
     // dismiss the dialog once done 
     pDialog.dismiss(); 
    } 

} 
} 

내가 오류가있어 시도하려

FATAL EXCEPTION: AsyncTask #2 
Process: com.example.androidhive, PID: 2173 
java.lang.RuntimeException: An error occured while executing doInBackground() 
at android.os.AsyncTask$3.done(AsyncTask.java:300) 
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
at java.lang.Thread.run(Thread.java:841) 
Caused by: java.lang.NullPointerException 
at com.example.androidhive.NewProductActivity$CreateNewProduct.doInBackground(NewProductActivity.java:99) 
at com.example.androidhive.NewProductActivity$CreateNewProduct.doInBackground(NewProductActivity.java:1) 
at android.os.AsyncTask$2.call(AsyncTask.java:288) 
at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
... 3 more 
android.view.WindowLeaked: Activity com.example.androidhive.NewProductActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{b4d44420 V.E..... R.....ID 0,0-169,88} that was originally added here 
at android.view.ViewRootImpl.<init>(ViewRootImpl.java:346) 
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248) 
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 
at android.app.Dialog.show(Dialog.java:286) 
at com.example.androidhive.NewProductActivity$CreateNewProduct.onPreExecute(NewProductActivity.java:76) 
at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587) 
at android.os.AsyncTask.execute(AsyncTask.java:535) 
at com.example.androidhive.NewProductActivity$1.onClick(NewProductActivity.java:56) 
at android.view.View.performClick(View.java:4424) 
at android.view.View$PerformClick.run(View.java:18383) 
at android.os.Handler.handleCallback(Handler.java:733) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4998) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 
at dalvik.system.NativeStart.main(Native Method) 

내 PHP 파일은 URL을 통과하는 방법?

+0

NewProductActivity 파일의 99 행은 무엇입니까? – nKn

+2

코드를 보여 주므로, 문제 해결과 관련하여 실제 노력이 표시되지 않습니다. ''echo string string'을 시도했는데 오류가 발생했습니다 :'syntax error, unexpected string '(T_STRING)', 내 PHP 파일은 /home/vhosts/myhost/myphpfile.php'문제 해결 방법 " –

답변

0

시작 새로운 활동에 C:/wamp/www/android_connect/create_product.php.htm에 onPostExecute 메서드

protected void onPostExecute(String file_url) { 
     // dismiss the dialog once done 
     pDialog.dismiss(); 

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

      if (success == 1) { 
       // successfully created product 
       Intent i = new Intent(getApplicationContext(), AllProductsActivity.class); 
       startActivity(i); 

       // closing this screen 
       finish(); 
      } else { 
       // failed to create product 
      } 
    } 

onPostExecute 메서드가 백그라운드 계산이 끝난 후에 호출됩니다. 백그라운드 프로세스의 결과가 매개 변수로이 메서드에 전달됩니다. 이제 백그라운드 작업이 완료되었음을 나타내는 진행 대화 상자를 닫을 수 있습니다. doInBackground 메서드는 비 UI 스레드이므로 doInBackground 메서드에서 뷰를 처리 할 수 ​​없습니다.

+0

onPostExecute 메서드에서 새 작업을 시작하는 이유 – mani

+0

내 편집 된 답변보기 ... –

+0

의 오류가 있습니다. – mani

0
protected void onPostExecute(String file_url) { 
      // dismiss the dialog once product deleted 
      pDialog.dismiss(); 
       if (file_url != null){ 
       Toast.makeText(Login.this, file_url, Toast.LENGTH_LONG).show(); 
      } 

이 시도하고 응답

0

내가 늦을 수도 무슨 말을하지만, 이것은 미래에 필요로하는 다른 사람을 위해 시간을 절약 할 수 ..

을 당신이 경우 문제가된다 최신 버전의 WampServer (2.5)를 사용하여 제거한 다음 WampServer 2.4 버전을 설치하십시오.

제대로 작동합니다. 그게 나를 위해 일한거야. 희망이 있으면 도움이됩니다. 건배 ..

P. 심지어 내가 왜 최신 버전에서 작동하지 않는지 모르겠다. 누군가가 우리에게 그걸 밝혀 주길 바란다. 고마워.