2013-04-16 34 views
0

誰能告訴我,這裏有什麼問題?我一直在嘗試一整天。我是Android新手,我也不擅長閱讀logcat,因此,我真的希望任何人都能幫助我。申請部隊一直關閉。部隊關閉有很多錯誤

private ProgressDialog pDialog; 

    // Creating JSON Parser object 
    JSONParser jParser = new JSONParser(); 

    ArrayList<HashMap<String, String>> eventsList; 

    // url to get all products list 
    private static String url_all_products = "http://xx.php"; 

    // JSON Node names 
    private static final String TAG_SUCCESS = "success"; 
    private static final String TAG_CUSTOMER = "customer"; 
    private static final String TAG_PID = "pid"; 
    private static final String TAG_FIRSTNAME = "firstname"; 
    private static final String TAG_LASTNAME = "lastname"; 
    private static final String TAG_ADDRESS = "address"; 
    private static final String TAG_TOTALCOST = "totalCost"; 

    // products JSONArray 
    JSONArray events = null; 

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

     // Hashmap for ListView 
     eventsList = new ArrayList<HashMap<String, String>>(); 

     // Loading products in Background Thread 
     new LoadAllProducts().execute(); 

    } 


    /** 
    * Background Async Task to Load all product by making HTTP Request 
    * */ 
    class LoadAllProducts extends AsyncTask<String, String, String> { 

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

     /** 
     * getting All products from url 
     * */ 
     protected String doInBackground(String... args) { 
      // Building Parameters 
      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      // getting JSON string from URL 
      JSONObject json = jParser.makeHttpRequest(url_all_products, "GET", params); 

      // Check your log cat for JSON reponse 
      Log.d("All Products: ", json.toString()); 

      try { 
       // Checking for SUCCESS TAG 
       int success = json.getInt(TAG_SUCCESS); 

       if (success == 1) { 
        // products found 
        // Getting Array of Products 
        events = json.getJSONArray(TAG_CUSTOMER); 

        // looping through All Products 
        for (int i = 0; i < events.length(); i++) { 
         JSONObject c = events.getJSONObject(i); 

         // Storing each json item in variable 
         String pid = c.getString(TAG_PID); 
         String firstname = c.getString(TAG_FIRSTNAME); 
         String lastname = "Time :" +c.getString(TAG_LASTNAME); 
         String address = "Date :" +c.getString(TAG_ADDRESS); 
         String totalCost = "Venue :" +c.getString(TAG_TOTALCOST); 


         // creating new HashMap 
         HashMap<String, String> map = new HashMap<String, String>(); 

         // adding each child node to HashMap key => value 
         map.put(TAG_PID, pid); 
         map.put(TAG_FIRSTNAME, firstname); 
         map.put(TAG_LASTNAME, lastname); 
         map.put(TAG_ADDRESS, address); 
         map.put(TAG_TOTALCOST, totalCost); 
         // adding HashList to ArrayList 
         eventsList.add(map); 
        } 
       } 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

      return null; 
     } 

     /** 
     * After completing background task Dismiss the progress dialog 
     * **/ 
     protected void onPostExecute(String file_url) { 
      // dismiss the dialog after getting all products 
      pDialog.dismiss(); 
      // updating UI from Background Thread 
      runOnUiThread(new Runnable() { 
       public void run() { 
        /** 
        * Updating parsed JSON data into ListView 
        * */ 
        ListAdapter adapter = new SimpleAdapter(
          CustomerTransaction.this, eventsList, 
          R.layout.list_item4, new String[] { TAG_PID,TAG_FIRSTNAME, TAG_LASTNAME, TAG_ADDRESS, TAG_TOTALCOST}, 
          new int[] { R.id.pid, R.id.firstname, R.id.lastname, R.id.address, R.id.totalCost }); 
        // updating listview 
        setListAdapter(adapter); 
       } 
      }); 

     } 

    } 

的logcat的:

04-16 18:34:22.706: E/WindowManager(1019): Activity com.spyraa.bookstore.CustomerTransaction has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{40d2c1e8 V.E..... R.....ID 0,0-304,96} that was originally added here 
04-16 18:34:22.706: E/WindowManager(1019): android.view.WindowLeaked: Activity com.spyraa.bookstore.CustomerTransaction has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{40d2c1e8 V.E..... R.....ID 0,0-304,96} that was originally added here 
04-16 18:34:22.706: E/WindowManager(1019): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:354) 
04-16 18:34:22.706: E/WindowManager(1019): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:216) 
04-16 18:34:22.706: E/WindowManager(1019): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 
04-16 18:34:22.706: E/WindowManager(1019): at android.app.Dialog.show(Dialog.java:281) 
04-16 18:34:22.706: E/WindowManager(1019):  at com.spyraa.bookstore.CustomerTransaction$LoadAllProducts.onPreExecute(CustomerTransaction.java:84) 
04-16 18:34:22.706: E/WindowManager(1019): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586) 
04-16 18:34:22.706: E/WindowManager(1019):  at android.os.AsyncTask.execute(AsyncTask.java:534) 
04-16 18:34:22.706: E/WindowManager(1019): at com.spyraa.bookstore.CustomerTransaction.onCreate(CustomerTransaction.java:61) 
04-16 18:34:22.706: E/WindowManager(1019): at android.app.Activity.performCreate(Activity.java:5104) 
04-16 18:34:22.706: E/WindowManager(1019): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
04-16 18:34:22.706: E/WindowManager(1019): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
04-16 18:34:22.706: E/WindowManager(1019): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
04-16 18:34:22.706: E/WindowManager(1019): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
04-16 18:34:22.706: E/WindowManager(1019): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
04-16 18:34:22.706: E/WindowManager(1019): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-16 18:34:22.706: E/WindowManager(1019): at android.os.Looper.loop(Looper.java:137) 
04-16 18:34:22.706: E/WindowManager(1019): at android.app.ActivityThread.main(ActivityThread.java:5039) 
04-16 18:34:22.706: E/WindowManager(1019): at java.lang.reflect.Method.invokeNative(Native Method) 
04-16 18:34:22.706: E/WindowManager(1019): at java.lang.reflect.Method.invoke(Method.java:511) 
04-16 18:34:22.706: E/WindowManager(1019): at  com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
04-16 18:34:22.706: E/WindowManager(1019): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
04-16 18:34:22.706: E/WindowManager(1019): at dalvik.system.NativeStart.main(Native Method) 

太感謝你了。

+0

如果您還有其他問題,請將它們作爲另一個問題發佈。 – thegrinner

回答

0

使用這樣

HttpPost httpost =新HttpPost(url_all_products)所述請求;

List <NameValuePair> nvps = new ArrayList <NameValuePair>(); 
nvps.add(new BasicNameValuePair("test1","test1")); 
nvps.add(new BasicNameValuePair("test2", "test2")); 

     httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); 

response = getResponse(httpost); 
+0

呃..不太明白。除了test1和測試2,我還想說些什麼? –

+0

如果你有參數然後添加否則離開它。 –

0

我看到幾個問題。第一個我認爲是造成你的問題。移動你的進度初始化出來的onPreExecute()到類聲明

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

    pDialog = new ProgressDialog(CustomerTransaction.this); // move to here so you can cancel in onPostExecute() 
    /** 
    * Before starting background thread Show Progress Dialog 
    * */ 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 

內您不需要在onPostExecute()runOnUiThread因爲這種方法對UI線程上運行。您正在使用onPostExecute()中的參數,但似乎沒有從doInBackground()返回任何內容。有可能會有更多的問題,但我會先嚐試這些東西,看看你得到什麼

知道如何使用logcat是非常重要的。在這裏它告訴你一個窗口已經泄漏,我相信這是由你初始化你的位置所引起的。通常你會看到一行說「由空指針異常引起」或其他異常。當你找到這一行時,第一行引用你的項目

at com.spyraa.bookstore.CustomerTransaction$LoadAllProducts.onPreExecute(CustomerTransaction.java:84) 

例如,會告訴你第84行是你的錯誤發生的地方。這通常是開始尋找的好地方。希望這會有所幫助

+0

你,找到你了。謝謝。 –

+0

不,問題。請接受,如果這幫助你 – codeMagic

+0

它幫助,但它顯示更多的錯誤。 :(是否有可能爲我解決它? –