【发布时间】:2013-04-14 01:19:35
【问题描述】:
我有一个简单的应用程序,当您单击 GridView 中的图像时,会弹出一个对话框,其中包含一个显示“视图”的按钮。当您单击按钮时,我想查看已在图库中单击的图像。当我让应用程序在没有对话框的情况下导航到图库时,我可以毫无问题地让它工作,但我需要它首先点击对话框。我的 LogCat 的错误返回 Java.lang.ArrayIndexOutOfBoundsExeption。关于我需要做什么来查看图像的任何想法?下面是我的代码。
public void onClick(View v) {
Dialog dia = new Dialog(ViewGrid.this);
dia.setContentView(R.layout.viewimage);
dia.setTitle("What To Do?");
dia.show();
dia.setCancelable(true);
Button button = (Button)dia.findViewById(R.id.viewImage);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int id = v.getId();
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + arrPath[id]), "image/*");
startActivity(intent);
}
});
}
我在这一行收到错误:
intent.setDataAndType(Uri.parse("file://" + arrPath[id]), "image/*");
我想通了!下面的代码是工作代码。我需要将我从视图中获得的 ID 设置为单击图像,而不是单击视图按钮。谢谢大家的帮助!
public void onClick(final View viewIt) {
Dialog dia = new Dialog(ViewGrid.this);
dia.setContentView(R.layout.viewimage);
dia.setTitle("What To Do?");
dia.show();
dia.setCancelable(true);
Button button = (Button)dia.findViewById(R.id.viewImage);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int id = viewIt.getId();
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + arrPath[id]), "image/*");
startActivity(intent);
}
});
}
【问题讨论】:
-
它是一个字符串数组。对不起,我会编辑
-
为什么使用 View id 作为数组的索引?
-
有更好的选择吗?我想如果视图正在抓取图像的 id,那么对话框就会知道显示它。
-
您必须将该数组更改为图像路径,然后尝试,
标签: android arrays image dialog