Java 为什么我的SQL数据库不能在Android中工作?
在我的应用程序中,点击一个图像按钮就可以进入多媒体资料。单击图像后,我想调用ActivityResult来存储图像路径,但它不起作用。在我的Java 为什么我的SQL数据库不能在Android中工作?,java,android,sql,error-handling,Java,Android,Sql,Error Handling,在我的应用程序中,点击一个图像按钮就可以进入多媒体资料。单击图像后,我想调用ActivityResult来存储图像路径,但它不起作用。在我的LogCat中,它总是告诉我它在试图保存图像路径时崩溃 MyonActivityResult方法: mImageRowId = savedInstanceState != null ? savedInstanceState.getLong(ImageAdapter.KEY_ROWID) : null; @Override protected void on
LogCat
中,它总是告诉我它在试图保存图像路径时崩溃
MyonActivityResult
方法:
mImageRowId = savedInstanceState != null ? savedInstanceState.getLong(ImageAdapter.KEY_ROWID) : null;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == PICK_FROM_FILE && data != null && data.getData() != null) {
Uri uri = data.getData();
if(uri != null) {
Cursor cursor = getContentResolver().query(uri, new String[] {
android.provider.MediaStore.Images.ImageColumns.DATA
}, null, null, null);
cursor.moveToFirst();
String image = cursor.getString(0);
cursor.close();
if(image != null) {
// HERE IS WHERE I WANT TO SAVE THE IMAGE. HERE MUST BE THE ERROR!
if (mImageRowId == null) {
long id = mImageHelper.createImage(image);
if (id > 0) {
mImageRowId = id;
}
}
// Set the image and display it in the edit activity
Bitmap bitmap = BitmapFactory.decodeFile(image);
mImageButton.setImageBitmap(bitmap);
}
}
}
}
private static final Long DEF_ROW_ID = 0L;
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putLong(ImageAdapter.KEY_ROWID, mImageRowId != null ? mImageRowId : DEF_ROW_ID);
super.onSaveInstanceState(outState);
}
这是我的onSaveInstanceState
方法:
mImageRowId = savedInstanceState != null ? savedInstanceState.getLong(ImageAdapter.KEY_ROWID) : null;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == PICK_FROM_FILE && data != null && data.getData() != null) {
Uri uri = data.getData();
if(uri != null) {
Cursor cursor = getContentResolver().query(uri, new String[] {
android.provider.MediaStore.Images.ImageColumns.DATA
}, null, null, null);
cursor.moveToFirst();
String image = cursor.getString(0);
cursor.close();
if(image != null) {
// HERE IS WHERE I WANT TO SAVE THE IMAGE. HERE MUST BE THE ERROR!
if (mImageRowId == null) {
long id = mImageHelper.createImage(image);
if (id > 0) {
mImageRowId = id;
}
}
// Set the image and display it in the edit activity
Bitmap bitmap = BitmapFactory.decodeFile(image);
mImageButton.setImageBitmap(bitmap);
}
}
}
}
private static final Long DEF_ROW_ID = 0L;
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putLong(ImageAdapter.KEY_ROWID, mImageRowId != null ? mImageRowId : DEF_ROW_ID);
super.onSaveInstanceState(outState);
}
这是我的DbAdapter
中的一部分:
public long createImage(String image) {
ContentValues cv = new ContentValues();
cv.put(KEY_IMAGE, image);
return mImageDb.insert(DATABASE_TABLE, null, cv);
}
你能找到问题吗?你的mImageHelper是什么 否则,您将尝试使用包含android.provider.MediaStore.Images.ImageColumns.DATA的变量image创建位图。但此列不是文件路径:) 对onActivityresult(data.getData)中接收的数据对象进行查询,以检索列MediaStore.Images.Media.data 您应该从路径创建图像
祝您好运。请重新进行代码缩进,并清楚地说明您尝试了什么以及在LogCat中遇到的确切错误。