将imagepath用于将来使用的问题

时间:2011-08-22 21:27:34

标签: android uri android-asynctask

这是应该在后台运行的代码块,以便将图像URI用于将来用于图库。 asynctask选择数据库中的所有产品,并将图像搜索到具有相同产品描述名称的指向文件夹中,如果找到,则将产品放入asynctask结尾处声明全局的产品列表中具有这些值的var。

public class getIMGS extends AsyncTask<Void, Integer, Void> {
    public List<Produto> pc; 

    @Override
    protected Void doInBackground(Void... params) {
        try {
            TimingLogger tm = new TimingLogger("IBS", "Inicio");
            dbHelper DB = new dbHelper(start.this);
            Dao<Produto, Integer> daO = DB.getProdutoDao();
            //QueryBuilder<Produto, Integer> qB = daO.queryBuilder();
            //qB.selectColumns("CD_REF");
            List<Produto> lista = daO.queryForAll();
            Produto p = null;
            File f = null;
            int i;
            for (i = 0; i<lista.size();i++) {
                p = lista.get(i);
                String path = Environment.getExternalStorageDirectory()+"/IBS/Imagens/"+p.getCD_REF()+".jpg";
                f = new File(path);
                Log.w("IBS", String.valueOf(i)+ " registros!");
                if (f.exists()) {
                    pc.add(p); //This line generates the error
                                            //NullPointerException, even all the values of p being filled. So, what the problem should be?
                }               
            }
            ImagesGlobal.setImages(pc);
            Log.w("IMAGENS", String.valueOf(pc.size())+" de "+String.valueOf(i)+" produtos possuem imagens...");
            Log.w("IMAGENS", "Processo de imagens finalizado!");
            tm.addSplit("Fim Imagens");
            tm.dumpToLog();
        } catch (Exception e) {
            Log.e("IMAGENS", e.getMessage());
        }
        return null;
    }

}

1 个答案:

答案 0 :(得分:0)

看起来这个变量是空的


public List<Produto> pc;

我没有看到你实例化它