2016-03-19 11 views
0

Ich benutze URLEncoder in meiner Tätigkeit. aber ich habe einen Fehler in MyTask. Ich habe den Fehler mit Fehler in meinem Code markiert.Fehler in MyTask mit URLEncoder - Android & Java

public class Search_Ringtone extends SherlockActivity{ 

ListView lsv_latest; 
List<ItemRingCategoryItem> arrayOfRingcatItem; 
RingCateItemAdapter objAdapterringitemitem; 
AlertDialogManager alert = new AlertDialogManager(); 
private ItemRingCategoryItem objAllBean; 
JsonUtils util; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.ringcatitem_activity); 

    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 

    lsv_latest=(ListView)findViewById(R.id.latest_list); 
    arrayOfRingcatItem=new ArrayList<ItemRingCategoryItem>(); 

    if (JsonUtils.isNetworkAvailable(Search_Ringtone.this)) { 
     String str = Constant.SEARCH_RINGTONE_URL+Constant.SEARCH.replace(" ", "%20"); 
     String myUrl = URLEncoder.encode(str, "UTF-8"); 

     MyTask().execute(myUrl); //*Error* 

    } else { 
     showToast("No Network Connection!!!"); 
     alert.showAlertDialog(Search_Ringtone.this, "Internet Connection Error", 
       "Please connect to working Internet connection", false); 
    } 


    lsv_latest.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int position, 
       long arg3) { 
      // TODO Auto-generated method stub 

      objAllBean=arrayOfRingcatItem.get(position); 
      Intent intplay=new Intent(getApplicationContext(),SingleRingtone.class); 
      Constant.RINGTONE_ITEMID=objAllBean.getRingItemId(); 
      startActivity(intplay); 

     } 
    }); 

} 

    private class MyTask extends AsyncTask<String, Void, String> { 

    ProgressDialog pDialog; 

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

     pDialog = new ProgressDialog(Search_Ringtone.this); 
     pDialog.setMessage("لطفا صبر کنید..."); 
     pDialog.setCancelable(false); 
     pDialog.show(); 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     return JsonUtils.getJSONString(params[0]); 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 

     if (null != pDialog && pDialog.isShowing()) { 
      pDialog.dismiss(); 
     } 

     if (null == result || result.length() == 0) { 
      showToast("Server Connection Error"); 
      alert.showAlertDialog(getApplicationContext(), "Server Connection Error", 
        "May Server Under Maintaines Or Low Network", false); 

     } else { 

      try { 
       JSONObject mainJson = new JSONObject(result); 
       JSONArray jsonArray = mainJson.getJSONArray(Constant.LATEST_ARRAY_NAME); 
       JSONObject objJson = null; 
       if(jsonArray.length()==0) 
       { 
        showToast("موردی پیدا نشد!"); 
       } 
       else 
       { 
        for (int i = 0; i < jsonArray.length(); i++) { 
         objJson = jsonArray.getJSONObject(i); 

         ItemRingCategoryItem objItem = new ItemRingCategoryItem(); 

         objItem.setRingItemId(objJson.getString(Constant.CATEITEMRING_RINDID)); 
         objItem.setRingItemCatId(objJson.getString(Constant.CATEITEMRING_RINDCATID)); 
         objItem.setRingItemCatName(objJson.getString(Constant.CATEITEMRING_CATENAME)); 
         objItem.setRingItemName(objJson.getString(Constant.CATEITEMRING_RINGNAME)); 
         objItem.setRingItemUrl(objJson.getString(Constant.CATEITEMRING_RINDURL)); 
         objItem.setRingItemDownCount(objJson.getString(Constant.CATEITEMRING_RINDDOWNCOUNT)); 
         objItem.setRingItemUser(objJson.getString(Constant.CATEITEMRING_RINDUSER)); 
         objItem.setRingItemTag(objJson.getString(Constant.CATEITEMRING_RINDTAG)); 
         objItem.setRingItemSize(objJson.getString(Constant.CATEITEMRING_RINDSIZE)); 
         objItem.setRingStar(objJson.getString(Constant.LATESTRING_RINGSTAR)); 
         objItem.setRingImage(objJson.getString(Constant.LATESTRING_RINGIMAGE)); 
         arrayOfRingcatItem.add(objItem); 
        } 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

      setAdapterToListview(); 
     } 

    } 
} 
+0

Bitte fügen, welche Fehler haben Sie bekommen. übrigens müssen Sie verwenden - new MyTask(). execute (myUrl); –

+0

Was ist der Fehler, den Sie bei 'URLEncoder.encode()' bekommen? –

+0

Anmerkung: --- Beschreibung \t Ressourcen \t Pfad \t Ort \t Typ Unbehandelte Ausnahme Typ UnsupportedEncodingException \t Search_Ringtone.java \t/Mann/src/com/apps/Mann \t Linie 57 \t Java Problem –

Antwort

0

Sollte es nicht new MyTask().execute(myURL); sein?

Auch, weil es eine AsyncTask ist, müssen Sie einen Verweis auf es bis es fertig ist, oder andernfalls der Garbage Collector zerstört es.

+0

Ich benutze es und löste Problem.aber jetzt haben Fehler in (String myUrl = URLEncoder.encode (str, "UTF-8");) –

+0

@SajjadAk froh, es zu hören. –

+0

Ich habe immer noch Fehler in: (String myUrl = URLEncoder.encode (str, "UTF-8");) –

0

ich so schreibe und gelöst danke alle:

 if (JsonUtils.isNetworkAvailable(Search_Ringtone.this)) { 
     String str = Constant.SEARCH_RINGTONE_URL+Constant.SEARCH.replace(" ", "%20"); 
     String myUrl = null; 
     try { 
      myUrl = URLEncoder.encode(str, "UTF-8"); 
     } catch (UnsupportedEncodingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     new MyTask().execute(myUrl);