-2

我在列表视图上显示图像并在列表适配器类中调用延迟加载,以便在列表视图上显示图像,它工作正常。表示图像正确加载。

但是我在项目单击侦听器上实现列表视图,并将图像 url 传递给另一个类,我再次调用与列表适配器类相同的延迟加载

   ` imageLoader.DisplayImage(strimg.trim(), imgview);`

然后发生错误

java.lang.NullPointerException

我的 Java 代码

  public class Description extends Activity
    {
public ImageLoader imageLoader; 
ImageView imgview;
String strimg;
Context context=this;
TextView 
@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.details);

    imgview= (ImageView) findViewById(R.id.descimg);
    try
    {
        Bundle bundle=getIntent().getExtras();
        if(bundle != null)
    {
        strimg= bundle.getString("ImageUrl");
        Log.d("DescImg", "strimg");

    }
    else {
        Toast.makeText(context, "Image"+strimg, Toast.LENGTH_LONG).show();
        Toast.makeText(context, "NUll", Toast.LENGTH_LONG).show();
    }

    Log.d("Desc", strimg);
          imageLoader.DisplayImage(strimg.trim(), imgview);

    }
    catch(Exception e)
    {
        Log.d("DescError"+e, strimg);
    }
}

传递图片网址

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            Intent i= new Intent(PropertySearch.this,Description.class);
            i.putExtra("ImageUrl", strimage[position]);

            startActivity(i);

        }
        });

请建议我如何解决这个问题

提前致谢。

4

2 回答 2

1

你刚刚声明了你的ImageLoader类变量

public ImageLoader imageLoader; 

不初始化。onCreate()所以用这样的方法初始化它,

imageLoader = new ImageLoader(Description.this);
于 2014-04-10T12:03:29.100 回答
0

您可能会忘记初始化您的imageLoader. 只需初始化您ImageLoaderonCreate如下:

public ImageLoader imageLoader;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.details);

    imageLoader= new ImageLoader(this);

}
于 2014-04-10T12:04:27.523 回答