我有一个简单的应用程序,当您单击 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);
}
});
}