java.lang.NullPointerException:尝试调用接口方法 空对象上的'boolean android.database.Cursor.moveToFirst()' 参考
我要附加文件。
可以是任何图片,doc,pdf。
在我的活动中:
String attachmentFile;
Uri URI = null;
private static final int PICK_FROM_GALLERY = 101;
int columnIndex;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_add_notice );
edBlock.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
openFolder();
}
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
try {
if (requestCode == PICK_FROM_GALLERY && resultCode == RESULT_OK) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
columnIndex = cursor.getColumnIndex(filePathColumn[0]);
attachmentFile = cursor.getString(columnIndex);
Log.e("Attachment Path:", attachmentFile);
URI = Uri.parse("file://" + attachmentFile);
cursor.close();
}
} catch (Exception e) {
e.printStackTrace();
Log.d( "Exception : " , e.getMessage() );
}
}
public void openFolder()
{
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.putExtra("return-data", true);
startActivityForResult(Intent.createChooser(intent, "Complete action using"), PICK_FROM_GALLERY);
}
它在光标所在行的onActivityResult中生成错误。moveToFirst();
答案 0 :(得分:0)
尝试在移动光标之前获取索引
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
try {
if (requestCode == PICK_FROM_GALLERY && resultCode == RESULT_OK) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToLast()
attachmentFile = cursor.getString(columnIndex);
Log.e("Attachment Path:", attachmentFile);
URI = Uri.parse("file://" + attachmentFile);
cursor.close();
}
} catch (Exception e) {
e.printStackTrace();
Log.d( "Exception : " , e.getMessage() );
}
}