У меня есть простой код Asynctask, который должен установить и изображение для просмотра изображения после загрузки из базы данных. Я вызываю этот класс в onCreateView моего фрагмента, но изображения нет в просмотре изображений. Примечание. В этой таблице только одна строка, поэтому я думаю, что с запросом все в порядке.

         protected class setpro extends AsyncTask<String, String, Bitmap> {


    @Override
    protected Bitmap doInBackground(String... params) {
        //Set profile
        DataBaseOperations hell = new DataBaseOperations(getActivity());
        SQLiteDatabase db = hell.getReadableDatabase();
        String[] columns = {mDatabase.Tableinfo.Pic};
        Cursor cur = db.query(mDatabase.Tableinfo.Table_Name, columns, null, null, null, null, null);
        byte[] b = null;
        Bitmap bp = null;
        while (cur.moveToNext()) {
            b = cur.getBlob(cur.getColumnIndex(mDatabase.Tableinfo.Pic));
        }
        if (b.length > 0) {
            bp = BitmapFactory.decodeByteArray(b, 0, b.length);
            cur.close();
            db.close();
            hell.close();
        }
            return bp;
    }
     @Override
protected void onPostExecute(Bitmap result) {
    if(result != null){
        ImageView iv = (ImageView) mview.findViewById(R.id.pro);
        iv.setImageBitmap(result);
}
}

А вот мой телефонный код.

      @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    mview = inflater.inflate(R.layout.fragment_profile, container, false);
    Button Setprofile = (Button) mview.findViewById(R.id.setprofile);
    // set profile pic
    new setpro().execute("whatever");
  }
0
Umer Asif 27 Дек 2015 в 10:54

2 ответа

Лучший ответ

Сэр, вы получили растровое изображение из таблицы, но не привязываете его к представлению изображения, поэтому добавьте этот код в свою Asynctask

protected void onPostExecute(Bitmap bm) {

iv.setImageBitmap(bm);
}
1
Salah Nour ElDin 27 Дек 2015 в 07:58

Где ваш метод onPostExecute(Bitmap b){ } для класса setpro?

AsyncTask использует это для возврата результатов / взаимодействия с потоком пользовательского интерфейса. https://developer.android.com/reference/android/os/AsyncTask.html

0
mawalker 27 Дек 2015 в 07:58