Проблема с получением imagepath для будущего использования - PullRequest
0 голосов
/ 23 августа 2011

Вот блок кода, который должен работать в фоновом режиме, чтобы получить URI изображений для будущего использования в галерее. 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 голосов
/ 23 августа 2011

Похоже, эта переменная равна нулю

<code>
public List<Produto> pc;

Я не видел, как вы ее создали

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...