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メソッドはActivityonActivityResult()に固有です

詳細については、このテーマを扱っているAndroid デベロッパーの公式サイトをご覧ください。

余談ですが、Java コードではなく XML からレイアウトを作成することをお勧めします。コーディングが速いだけでなく、パフォーマンスの面でもはるかに高速です。

于 2012-11-09T20:46:06.447 に答える