0

我试图在拍摄后获取照片,但未调用 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,埃里克

4

1 回答 1

2

你是onActivityResult()LinearLayout课堂上打来的。该onActivityResult()方法特定于活动

有关更多详细信息,请参阅处理此主题的官方Android 开发者网站。

附带说明一下,最佳实践是从 XML 而不是从 Java 代码创建布局。它不仅编码速度更快,而且在性能方面也快得多。

于 2012-11-09T20:46:06.447 回答