2012-11-19 32 views
0

我已經使用LazyAdapter實現了一個自定義ListView來顯示縮略圖圖像。最後,當我得到這個LazyAdapter工作後,OnItemClickListener不顯示數據,只是返回空字符串。如果我刪除ListView的Custom LazyAdapter類,代碼工作正常。ListView OnItemClickListener不適用於LazyAdapter ListView

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

     protected String doInBackground(String... args) { 

      UserFunctions fn = new UserFunctions(); 
      String id = fn.getID(getApplicationContext()); 

      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      params.add(new BasicNameValuePair("id", id)); 

      JSONObject json = 
      jParser.makeHttpRequest(url_all_directories, "GET", params); 

      Log.d("All Directories: ", json.toString()); 

      try { 

       int success = json.getInt(TAG_SUCCESS); 

       if (success == 1) { 

        directories = json.getJSONArray(TAG_DIRECTORIES); 

        for (int i = 0; i < directories.length(); i++) { 
         JSONObject c = directories.getJSONObject(i); 

         String eid = c.getString(TAG_ID); 
         String name = c.getString(TAG_NAME);       
         String image = c.getString(TAG_IMG); 

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

         map.put(TAG_ID, eid); 
         map.put(TAG_NAME, name);       
         map.put(TAG_IMG, image); 

         directoryList.add(map); 
        } 

       } else { 

        Intent i = new Intent(getApplicationContext(), 
          DirectoryActivity.class); 

        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        startActivity(i); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

      return null; 
     } 

     protected void onPostExecute(String file_url) { 

      runOnUiThread(new Runnable() { 
       public void run() { 

        ListAdapter adapter = new LazyAdapter(
        DirectoryAllActivity.this, directoryList);     
        setListAdapter(adapter); 
       } 
      }); 

     } 

    } 

} 

錯誤日誌

更新:重複的記錄的一部分已被刪除。

11-19 14:17:12.612: W/System.err(16343): java.net.MalformedURLException: Protocol not found: null 
11-19 14:17:12.612: W/System.err(16343): at java.net.URL.<init>(URL.java:178) 
11-19 14:17:12.612: W/System.err(16343): at java.net.URL.<init>(URL.java:127) 
11-19 14:17:12.612: W/System.err(16343): at com.app.android.library.ImageLoader.getBitmap(ImageLoader.java:70) 
11-19 14:17:12.612: W/System.err(16343): at com.app.android.library.ImageLoader.access$0(ImageLoader.java:58) 
11-19 14:17:12.612: W/System.err(16343): at com.app.android.library.ImageLoader$PhotosLoader.run(ImageLoader.java:135) 
11-19 14:17:12.612: W/System.err(16343): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442) 
11-19 14:17:12.622: W/System.err(16343): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
11-19 14:17:12.622: W/System.err(16343): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
11-19 14:17:12.622: W/System.err(16343): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
11-19 14:17:12.622: W/System.err(16343): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
11-19 14:17:12.622: W/System.err(16343): at java.lang.Thread.run(Thread.java:856) 
11-19 14:17:12.653: D/memalloc(16343): ion: Mapped buffer base:0x5e951000 size:3768320 offset:0 fd:55 

回答

1
Caused By: java.net.MalformedURLException 

你需要使用一個真正的URL,不是這個:

private static String url_all_directories = "a_web_url"; 

您可以使用教程的建議網址開始:http://api.androidhive.info/music/music.xml


嘿!你偷偷改變你的LogCat。

不管怎麼說,現在的問題是圖片網址:

at com.app.android.library.ImageLoader.getBitmap(ImageLoader.java:70) 

檢查在「a_web_url」,這顯然是你的一個服務器上的數據...

+0

是我使用的是真實的URL。它只是這篇文章的佔位符..我從Web服務器獲取數據。 – user1781367

+0

當你使用'url_all_directories =「http://api.androidhive.info/music/music.xml」'會發生什麼? – Sam

+0

呃..我不知道如果我可以使用該URL,因爲數據來自我有一個SQL服務器。 – user1781367

相關問題