android - Android: NullPointer幫助

  显示原文与译文双语对照的内容
0 0

我在 Activity 中有一個實現ImageLoader類的方法:

public void imageLazy(final ImageView image,Project pro)
 {
 String imageurl = pro.smallImageUrl;
 imageLoadery.displayImage(imageurl, activity,image);
 }

但每次我運行 Activity 程序都會崩潰。 行上有一個返回空指針

imageLoadery.displayImage(imageurl, activity,image);

它引用了ImageLoader類上的第一行上的第一行:

if(((String)photoToLoad.imageView.getTag()).equals(photoToLoad.url)){
 BitmapDisplayer bd=new BitmapDisplayer(bmp, photoToLoad.imageView);
 Activity a=(Activity)photoToLoad.imageView.getContext();
 a.runOnUiThread(bd);
 }

我所知道的,可能是空的: tagurl 或者 image 。 誰能幫助我解決我的問題? Thx

注意:上面的方法也適用於下面的listview 。 這可能是幫助你解決我的案例的參考:

public View getView(int position, View convertView, ViewGroup parent) {
 ViewHolder holder = null;
//Inflate the view
 if (convertView == null) {
 convertView = mInflater.inflate(resource, null);
 holder = new ViewHolder();
 holder.image = (ImageView) convertView.findViewById(R.id.image);
 holder.textTitle = (TextView) convertView
. findViewById(R.id.txt_title);
 convertView.setTag(holder);
 } else {
 holder = (ViewHolder) convertView.getTag();
 }
 Project project = items.get(position);
 holder.textTitle.setText(project.project_title);
 String imageurl = project.smallImageUrl;
 holder.image.setTag(imageurl);
 imageLoader.displayImage(imageurl, activity, holder.image);
 return convertView;
 }

在ListView適配器中,我在 Activity 上只對標籤應用布局 inflater,這對我來說是困難的,我在上幾乎不需要

我對任何一種解決方案都是開放的。 謝謝你

更新

Stacktrace:

05-16 09:02:00.758: INFO/System.out(441): http://cdn.spendino.de/web/img/projects/home/1263830540.jpg
05-16 09:02:00.769: INFO/System.out(441): spendino.de.Main@43d17ab0
05-16 09:02:00.778: INFO/System.out(441): android.widget.ImageView@43d041f0
05-16 09:02:00.778: INFO/System.out(441): http://cdn.spendino.de/web/img/projects/home/1263997113.jpg
05-16 09:02:00.801: INFO/System.out(441): spendino.de.Main@43d17ab0
05-16 09:02:00.829: INFO/System.out(441): android.widget.ImageView@43d17bd0
05-16 09:02:00.829: INFO/System.out(441): http://cdn.spendino.de/web/img/projects/home/1290615697.jpg
05-16 09:02:00.829: INFO/System.out(441): spendino.de.Main@43d17ab0
05-16 09:02:00.829: INFO/System.out(441): android.widget.ImageView@43d18098
05-16 09:02:01.398: INFO/ActivityManager(33): Displayed activity spendino.de/.Main: 3891 ms (total 3891 ms)
05-16 09:02:01.948: WARN/dalvikvm(441): threadid=15: thread exiting with uncaught exception (group=0x4001b188)
05-16 09:02:01.958: ERROR/AndroidRuntime(441): Uncaught handler: thread Thread-9 exiting due to uncaught exception
05-16 09:02:01.978: ERROR/AndroidRuntime(441): java.lang.NullPointerException
05-16 09:02:01.978: ERROR/AndroidRuntime(441): at spendino.de.ImageLoaderCache$PhotosLoader.run(ImageLoaderCache.java:244)
时间:原作者:7个回答

0 0

你錯過了 setTag 方法。希望它能工作。 更改了 imageLazy 方法。

 public void imageLazy(final ImageView image,Project pro)
 {
 String imageurl = pro.smallImageUrl;
 image.setTag(imageurl);
 imageLoadery.displayImage(imageurl, activity,image);
 }
原作者:
...