更新时没有错误,但图片无法更新android sqlite

时间:2018-07-24 04:59:44

标签: android image sqlite gridview insert-update

所以我有一个SQLite数据库。我尝试更新,但我的android应用程序中没有错误。当我仅更新名称或成本时,它已成功更新,但图像未显示在我的gridview中。但是当我仅更新图像时,它已成功更新。有人可以在这里帮助我!

这是我的数据库类:

public class Database extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "mydaringdb";
private static final int DATABASE_VERSION = 2;

public static final String TABLE_PRODUK = "produk";

public static final String KEY_ID_PRODUK = "id";
public static final String KEY_NAMA_PRODUK = "nama_produk";
public static final String KEY_HARGA_PRODUK = "harga_produk";
public static final String KEY_GAMBAR_PRODUK = "gambar_produk";


//for showing 1 product
public ModelProduk getnama(int selection) {
    SQLiteDatabase db = this.getReadableDatabase();
    String cb = "SELECT * FROM " + TABLE_PRODUK + " WHERE " + KEY_ID_PRODUK + "= '" + selection + "'";
    Cursor cursor = db.rawQuery(cb, null);
    if (cursor != null)
        cursor.moveToFirst();
    ModelProduk modelProduk = new ModelProduk();
    modelProduk.set_id(Integer.parseInt(cursor.getString(0)));
    modelProduk.set_nama(cursor.getString(1));
    modelProduk.set_harga(Integer.parseInt(cursor.getString(2)));
    modelProduk.set_gambar(cursor.getBlob(3));


    return modelProduk;
}

//for update 1 product
public void update(ModelProduk modelProduk) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_NAMA_PRODUK, modelProduk.get_nama());
    values.put(KEY_HARGA_PRODUK, modelProduk.get_harga());
    values.put(KEY_GAMBAR_PRODUK, modelProduk.get_gambar());

    String where = "id=?";
    String[] whereArgs = new String[] {String.valueOf(modelProduk.get_id())};
    // update baris
    db.update(TABLE_PRODUK, values, where, whereArgs);
}

我的更新班:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_update_produk);
    init();


    tambahgambaru.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showFileChooser();
        }
    });

    simpandatau.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            modelProduk.set_nama(deskripsiu.getText().toString());
            modelProduk.set_harga(Integer.parseInt(harga_produku.getText().toString()));
            modelProduk.set_gambar(getImageByte(bitmap));
            db.update(modelProduk);
            Toast.makeText(getApplicationContext(), "Data Berhasil Diubah!", Toast.LENGTH_SHORT).show();

        }
    });

    kembaliu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(UpdateProduk.this, Produk.class);
            startActivity(i);
            finish();

        }
    });

}

public void refresh(){
    produklist = new ArrayList<>();
    adapter = new ProdukAdapter( this, produklist);
    produklist.clear();
    produklist.addAll(db.getAllProduk());
    adapter.notifyDataSetChanged();
}
private void init(){

    pilih = getIntent().getIntExtra("id_produk", 0);
    db = new Database(this);
    modelProduk = db.getnama(pilih);

    gambar_produku = (ImageView) findViewById(R.id.pilihgambaru);
    tambahgambaru = (Button) findViewById(R.id.btaddu);
    simpandatau = (Button) findViewById(R.id.btsimpanu);
    deskripsiu = (EditText) findViewById(R.id.etdesku);
    harga_produku = (EditText) findViewById(R.id.ethargau);
    kembaliu = (Button) findViewById(R.id.btkembaliu);

    deskripsiu.setText(modelProduk.get_nama());
    harga_produku.setText(String.valueOf(modelProduk.get_harga()));
    gambar_produku.setImageBitmap(bitmap(modelProduk.get_gambar()));

}
public void showFileChooser() {
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Pilih Gambar"), 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1 && resultCode==RESULT_OK) {


        filePath = data.getData();
        try {
            bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
            gambar_produku.setImageBitmap(bitmap);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


public byte[] getImageByte(Bitmap bitmap) {
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    byte imageInByte[]=null;
    if(bitmap!=null) {
        bitmap.compress(Bitmap.CompressFormat.JPEG, 50, stream);
        imageInByte=stream.toByteArray();
    }
    return imageInByte;
}

public Bitmap bitmap (byte[] byteImage){
    byte[] outImage = byteImage;
    Bitmap image ;
    if (outImage != null){
        ByteArrayInputStream imageStream = new ByteArrayInputStream(outImage);
        image = BitmapFactory.decodeStream(imageStream);
    }else {
        image= null;
    }
    return image;
}
}

我的update.xml:

<ImageView
    android:id="@+id/pilihgambaru"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:src="@mipmap/ic_launcher"
    android:layout_centerHorizontal="true"
    />
<Button
    android:id="@+id/btaddu"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/pilihgambaru"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="10dp"
    android:text="pilih gambar"
    android:layout_centerHorizontal="true"
    />

<EditText
    android:id="@+id/etdesku"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:layout_marginLeft="10dp"
    android:layout_below="@id/btaddu"
    android:layout_centerHorizontal="true"
    android:hint="Masukkan Deskripsi Barang"
    android:inputType="textMultiLine"
    android:maxLength="100"
    />
<EditText
    android:id="@+id/ethargau"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    android:layout_below="@id/etdesku"
    android:layout_marginTop="10dp"
    android:layout_centerHorizontal="true"
    android:hint="Masukkan Harga Barang"
    android:inputType="number"
    android:maxLength="10"
    />
<Button
    android:id="@+id/btsimpanu"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/ethargau"
    android:layout_marginTop="10dp"
    android:text="simpan"
    android:layout_marginLeft="100dp"
    android:layout_centerHorizontal="true"
    />
<Button
    android:id="@+id/btkembaliu"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/btsimpanu"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp"
    android:text="ke produk"
    />

0 个答案:

没有答案