startActivityForResult不在片段工作 [英] startActivityForResult is not working in Fragment
本文介绍了startActivityForResult不在片段工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我目前正在与片段工作。我想从挑选的画廊和放图像;它显示到片段类。但这里startActivityForResult()不工作片段
我的片段类
按钮的LoadImage =(按钮)view.findViewById(R.id.loadButton);
loadimage.setOnClickListener(新OnClickListener(){ @覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
意图I =新意图(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(ⅰ,RESULT_LOAD_IMAGE);
}
});
@覆盖
公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
super.onActivityResult(要求code,结果code,数据); 如果(要求code == RESULT_LOAD_IMAGE&放大器;&安培;结果code == RESULT_OK&放大器;&安培;!NULL =数据){
乌里selectedImage = data.getData();
的String [] = filePathColumn {MediaStore.Images.Media.DATA}; 光标光标= getActivity()。getContentResolver()查询(selectedImage,
filePathColumn,NULL,NULL,NULL);
cursor.moveToFirst(); INT参数:columnIndex = cursor.getColumnIndex(filePathColumn [0]);
字符串picturePath = cursor.getString(参数:columnIndex);
cursor.close();
imgview.setImageBitmap(BitmapFactory.de codeFILE(picturePath)); } }
解决方案
在活动类:
@覆盖
公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
super.onActivityResult(要求code,结果code,数据);
}
在片段:
@覆盖
公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
//处理活动的结果在这里
}
从片段开始结果活动:
意向意图=新意图(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(意向,1);
I am currently working with with Fragment. I want to pick Image from gallery & display it onTo fragment class. But here startActivityForResult() is not working in Fragment.
My fragment class
Button loadimage=(Button) view.findViewById(R.id.loadButton);
loadimage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, RESULT_LOAD_IMAGE);
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getActivity().getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
imgview.setImageBitmap(BitmapFactory.decodeFile(picturePath));
}
}
解决方案
In Activity class:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode,resultCode,data);
}
In Fragment :
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
// Handle activity result here
}
start activity for result from fragment:
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);
这篇关于startActivityForResult不在片段工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文