懒惰加载在android中不起作用

时间:2014-04-10 11:55:43

标签: android android-layout android-lazyadapter android-lazyloading

我在列表视图上显示图像并在列表适配器类中调用延迟加载,对于列表视图中的显示图像,它工作正常。意味着图像正确加载。

但我在项目点击监听器上实现列表视图,图像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);

        }
        });

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

先谢谢。

2 个答案:

答案 0 :(得分:1)

您刚刚声明了ImageLoader类变量

public ImageLoader imageLoader; 

未初始化。所以在onCreate()方法中初始化它,如

imageLoader = new ImageLoader(Description.this);

答案 1 :(得分:0)

您可能忘记初始化imageLoader。  只需在ImageLoader中初始化onCreate,如下所示:

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

    imageLoader= new ImageLoader(this);

}