java.lang.IllegalStateException : CursorWindow에서 행 0, 열 0을 읽을 수 없습니다. 커서가 데이터에 액세스하기 전에 커서가 올바르게 초기화되었는지 확인하십시오.CursorWindow에서 행 0, 열 0을 읽을 수 없습니다.
public class MyProfile extends AppCompatActivity {
private Context mContext;
private ImageView i1, i2,i3;
private static final int SELECT_IMAGE = 1;
private StoreProfileData mStore;
SQLiteDatabase db;
String path;
Cursor cursor,c;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_profile);
mContext = MyProfile.this;
i1 = (ImageView) findViewById(R.id.user_profile_photo);
i2 = (ImageView) findViewById(R.id.user_profile_photo_hidden);
i3 = (ImageView) findViewById(R.id.header_cover_image);
db=this.openOrCreateDatabase("test.db",Context.MODE_PRIVATE,null);
db.execSQL("create table if not exists tb(a blob)");
}
public void initialize() {
i2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
final int ACTIVITY_SELECT_IMAGE = 1234;
startActivityForResult(i, ACTIVITY_SELECT_IMAGE);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1234:
if (resultCode == RESULT_OK) {
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
File f = new File(filePath);
path=f.getPath();
Log.d("path",path);
cursor.close();
// Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
// i2.setImageBitmap(yourSelectedImage);
}
}
}
는 성공적으로 SQLite는 데이터베이스에 경로를 instereted되는 이미지 저장 방법
public void saveImage(View view)
{
try {
FileInputStream fts = null;
fts = new FileInputStream(path);
byte[]image=new byte[fts.available()];
fts.read(image);
ContentValues values=new ContentValues();
values.put("a",image);
db.insert("tb", null, values);
fts.close();
Toast.makeText(this,"inserted",Toast.LENGTH_LONG).show();
}
catch (IOException e){
e.printStackTrace();
}
}
여기 데이터베이스에 삽입에서 나는 오류 중 mesg을 얻을 GET 이미지의 된 GetImage 방법
public void getImage(View view) {
cursor = db.rawQuery("select * from tb", null);
Log.d("dv", String.valueOf(cursor));
if (cursor.getCount() > 0) {
Log.d("crsr", "sdds");
if (cursor.moveToNext()) {
byte[] image = cursor.getBlob(0);
Bitmap bmp = BitmapFactory.decodeByteArray(image, 0, image.length);
i2.setImageBitmap(bmp);
Toast.makeText(this, "selected", Toast.LENGTH_LONG).show();
}
}
}
}
이미지 경로 또는 해당 이미지의 바이트 배열 문자열을 저장할 수 있습니다. –
myprofile 페이지의 이미지 뷰 값을 스토리 데이터에 삽입하는 방법은 무엇입니까? –
어떻게 이미지 뷰에서 값을 설정합니까? xml 파일에 있습니까? –