Android 是否从数组引用设置imageview?
我会保持简单。我想将AlertDialog中的ImageView设置为Drawable数组中的图像我想设置为ImageView的图像可以通过访问mImages[position]来检索 下面是一个简短的解释,完整的解释如下: 简言之,我需要一种方法将图像从我的主要活动传递到对话框,然后在取消时关闭对话框,在确认时将系统墙纸设置为从主要活动传递的图像,然后完成;活动 这里有一个完整的解释: 用户将看到一个图库和图库上方的图像视图,其中显示了图库中具有焦点的图像的较大预览 “多媒体资料”中显示的图像是通过以下方式设置的:Android 是否从数组引用设置imageview?,android,eclipse,imageview,drawable,android-imageview,Android,Eclipse,Imageview,Drawable,Android Imageview,我会保持简单。我想将AlertDialog中的ImageView设置为Drawable数组中的图像我想设置为ImageView的图像可以通过访问mImages[position]来检索 下面是一个简短的解释,完整的解释如下: 简言之,我需要一种方法将图像从我的主要活动传递到对话框,然后在取消时关闭对话框,在确认时将系统墙纸设置为从主要活动传递的图像,然后完成;活动 这里有一个完整的解释: 用户将看到一个图库和图库上方的图像视图,其中显示了图库中具有焦点的图像的较大预览 “多媒体资料”中显示的图像
// setup wallpaper array
private void findWallpapers() {
mThumbs = new ArrayList<Integer>(24);
mImages = new ArrayList<Integer>(24);
final Resources resources = getResources();
final String packageName = getApplication().getPackageName();
addWallpapers(resources, packageName, R.array.wallpapers);
}
// setup array defining all wallpapers & define thumbnails
private void addWallpapers(Resources resources, String packageName, int list) {
final String[] extras = resources.getStringArray(list);
for (String extra : extras) {
int res = resources.getIdentifier(extra, "drawable", packageName);
if (res != 0) {
final int thumbRes = resources.getIdentifier(extra + "_small",
"drawable", packageName);
if (thumbRes != 0) {
mThumbs.add(thumbRes);
mImages.add(res);
}
}
}
}
您可以使用布局充气器充气警报对话框布局,并将其指定给主活动中警报对话框的视图。可以使用findViewById为这些按钮设置onClickListeners监听器。这将确保您的OnClick侦听器可以看到模拟图像
final ArrayList<Integer> mImages=new ArrayList<Integer>();
final ImageView v=findViewById(R.id.imageView);
AlertDialog d=new AlertDialog.Builder(Main.this).create();
d.setView(getLayoutInflater().inflate(R.layout.dialogView,findViewById(R.id.ROOT_LAYOUT_IN_XML_ID),false));
((ImageView)d.findViewById(R.id.YOUR_VIEW_ID)).setImageResource(mImages.get(?));
((Button)d.findViewById(R.id.cancelButton)).setOnClickListener(new OnClickListener()
{
d.dismiss();
});
((Button)d.findViewById(R.id.acceptButton)).setOnClickListener(new OnClickListener()
{
v.setImageResource(mImages.get(?));
d.dismiss();
});
你是否仍然面对问题的眼睛,第一个解决方案没有解决问题。我将编辑我的问题以更好地解释我的问题。您是否建议我使用警报对话框生成器而不是完全自定义的对话框生成器?只是好奇这是否有什么不同。谢谢接受答案。当工具呈现给您时,为什么不使用它们?所以,是的,我是这样建议的。欢迎这并没有解决我的问题。充气不接受整数、alertDialog、布尔值。我想你可能也误解了我的问题。我会对它进行编辑,以便更好地解释我的答案对你想做的事情很有用。我正在编辑它以包括在dialogView中设置预览墙纸,但是您必须使用自己的方法获得该图像。还有,请动动脑筋。如果我头脑中写下的代码不完美,请使用Eclipse或任何IDE的特性自己解决。或者,使用文档。此外,你是对的,我有点误解了充气。它需要提供ViewGroup的子类。修复。感谢您的帮助,但我遇到的主要问题是想出一种方法将图像传递到对话框。我在设置对话框、显示对话框和实现onClickLictener方面没有问题。因此,我不会接受这个答案。
final ArrayList<Integer> mImages=new ArrayList<Integer>();
final ImageView v=findViewById(R.id.imageView);
AlertDialog d=new AlertDialog.Builder(Main.this).create();
d.setView(getLayoutInflater().inflate(R.layout.dialogView,findViewById(R.id.ROOT_LAYOUT_IN_XML_ID),false));
((ImageView)d.findViewById(R.id.YOUR_VIEW_ID)).setImageResource(mImages.get(?));
((Button)d.findViewById(R.id.cancelButton)).setOnClickListener(new OnClickListener()
{
d.dismiss();
});
((Button)d.findViewById(R.id.acceptButton)).setOnClickListener(new OnClickListener()
{
v.setImageResource(mImages.get(?));
d.dismiss();
});