آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل برنامه نمایش عکس از دیتابیس

mamad1994s  10 سال پیش  10 سال پیش
0 0

دوستان برنامه زیر رو نوشتم که عکس از دیتابیس نشون بده تا روی دکمه کلیک می کنم از برنامه خارج می شه
 ممنون می شم ببینید مشکلکش چیه

 package com.example.udpshop;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;

public class Main extends Activity {

private databse db;
private EditText et;
private ImageView ie;
private Button bt;


protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et=(EditText) findViewById(R.id.editText1);
ie=(ImageView) findViewById(R.id.imageView1);
bt=(Button) findViewById(R.id.btn1);
db=new databse(this);

db.database();
bt.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
db.open();
byte[] p=db.getpic(Integer.parseInt(et.getText().toString()));
if(p!=null){
Bitmap bm=BitmapFactory.decodeByteArray(p, 0, p.length);
ie.setImageBitmap(bm);

}else{

}
db.close();
}

});


}



}
 package com.example.udpshop;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class databse extends SQLiteOpenHelper {
private final String path="data/data/com.example.udpshop/databases/";
private final String name="database2.db";
public SQLiteDatabase mydb;
private final Context myContext;
public databse(Context context) {
super(context, "database2", null, 1);
myContext=context;
}

@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub

}

@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub

}
public boolean database(){
boolean checkdb=checkdb();
if(checkdb){

}else{
this.getReadableDatabase();
try{
copydatabase();
}catch(IOException e){}}
return checkdb;
}
public void open(){
mydb=SQLiteDatabase.openDatabase(path+name, null, SQLiteDatabase.OPEN_READONLY);
}
public void close(){
mydb.close();
}
public boolean checkdb(){
SQLiteDatabase db=null;
try{
db=SQLiteDatabase.openDatabase(path+name, null, SQLiteDatabase.OPEN_READONLY);
}
catch(SQLException e){
}
return db!=null ? true:false;
}
public void copydatabase() throws IOException{
OutputStream myOut =new FileOutputStream(path+name);
byte[] buffer =new byte[1024];
int length;
InputStream myInput = myContext.getAssets().open(name);
while((length=myInput.read(buffer))>0){
myOut.write(buffer, 0, length);
}
myInput.close();
myOut.flush();
myOut.close();
}
public byte[] getpic(int id){

Cursor ce=mydb.rawQuery("select * from tbl_content where id="+id, null);
ce.moveToFirst();
byte[] s;
s=ce.getBlob(2);
return s;
}



}

+1 0
با گذاشتن Log زیر هر خط ببینید مشکل از کدوم قسمته شاید کلاس دیتابیستون مشکل داره. (10 سال پیش)
0 0
متاسفانه کدهاتون خیلی بهم ریخته و نا مرتب هست و امکان بررسی اون وجود نداره ، شاید مشکلتون با یکبار پاک کردن کامل دیتابیس از روی دستگاه حل بشه . (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
mamad1994s  10 سال پیش
0 0


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .