问题描述
- 通过 AlertDialog 获取图像的问题
-
我在程序中从camera gallery中获取图片。当我使用一个按钮从一个activity中获取图片,然后再把图片放在activity中时,可以正常运行。但是当我在AlertDialog上使用一个按钮时,不能把图像放在 imageview中。
如何实现?((Button)dialogView.findViewById(R.id.button3)) .setOnClickListener(new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent,"Select Picture"),SELECT_PICTURE);} public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { if (requestCode == SELECT_PICTURE) { Uri selectedImageUri = data.getData(); selectedImagePath = getPath(selectedImageUri); System.out.println("Image Path : " + selectedImagePath); im1.setImageURI(selectedImageUri);}}} public String getPath(Uri uri) { String[] projection = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(uri, projection, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index);}});
当我把这些代码添加到 AlertDialog 时,就不能执行了。
lay1.setOnLongClickListener(new OnLongClickListener() { public boolean onLongClick(View v) { LayoutInflater myLayout = LayoutInflater.from(context); final View dialogView = myLayout.inflate(R.layout.alerthelp, null); AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); alertDialogBuilder.setView(dialogView); final AlertDialog alertDialog = alertDialogBuilder.create(); ((Button) dialogView.findViewById(R.id.button3)) .setOnClickListener(new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE); } public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { if (requestCode == SELECT_PICTURE) { Uri selectedImageUri = data.getData(); selectedImagePath = getPath(selectedImageUri); System.out.println("Image Path : " + selectedImagePath); im1.setImageURI(selectedImageUri); } } } public String getPath(Uri uri) { String[] projection = {MediaStore.Images.Media.DATA}; Cursor cursor = managedQuery(uri, projection, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } }); alertDialog.show(); return true; } });
我在另一个 activity 中 使用按钮来测试代码可以正常运行。但是当我打开alertDialog 来实现,我就不能把图像放回 imageview ,我依然可以从 Gallery 获取图像和点击一个图像,但是当我想保存它时,它不能把图像放在 imageview 中。
时间: 2024-10-03 15:02:27