我试图拍摄照片但是没有调用onActivityResult:
public class questionListView extends LinearLayout {
protected static final Integer PICTURE_RESULT = 1;
private Context ctx;
public Uri path;
public questionListView(Context context, AttributeSet attrs) {
super(context, attrs);
ctx = context;
init();
}
public questionListView(Context context) {
super(context);
ctx = context;
init();
}
private void init() {
LayoutInflater factory = LayoutInflater.from(getContext());
View myView = factory.inflate(R.layout.view1, null);
LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
myView.setLayoutParams(params);
addView(myView);
Button btaddphoto = (Button) myView.findViewById(R.id.btAddPhoto);
btaddphoto.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String _path = Environment.getDataDirectory() + File.separator + "pic1.png";
File file = new File(_path);
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
((Activity) ctx).startActivityForResult(intent, PICTURE_RESULT);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Bitmap mBitmap;
String _path = Environment.getDataDirectory() + File.separator + "pic1.png";
mBitmap = BitmapFactory.decodeFile(_path);
if (mBitmap == null) {
// bitmap still null
} else {
// kleine bitmap maken
// deze in een imageview toevoegen aan layout lvPhotos
}
}
}
我在第
行收到错误super.OnActivityResult(requestCode, resultCode, data);
错误讯息:
The method onActivityResult(int, int, Intent) is undefined for the type LinearLayout
如果我退出,则不会调用onActivityResult函数。
我做错了什么?
RG, 埃里克
答案 0 :(得分:2)
您正在从onActivityResult()
班级致电LinearLayout
。 onActivityResult()
方法特定于活动。
有关详细信息,请参阅处理此主题的官方Android developers site。
另外,最佳做法是从XML而不是Java代码创建布局。不仅代码编写速度更快,而且性能方面也更快。