我正在开发一个用于查看dicom图像的android应用程序,我将其存储在位图的arrayList中,我使用GridViewAdapter
预览GridView
中的图像。一个片段,然后用户选择一个图像在新活动中看到它,并通过实施onItemClickListner
来完成。
当用户点击第一张图片时,它显示正确,但如果选择任何其他图像,我会收到此错误。
threadid = 12:线程以未捕获的异常退出(group = 0x40e6f930)
这是onItemClickListener
实现
class imageClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
try {
Bitmap selectedImage = cFindResult.get(arg2);
Intent i = new Intent(getActivity(), DicomImageActivity.class);
i.putExtra("Image", selectedImage);
ShowRadiologyRequestsFragment.this.startActivity(i);
} catch (Exception e) {
e.printStackTrace();
}
}
cFindResult
是ArrayList<Bitmap>
是否有人可以帮我了解可能出现的问题?
感谢。
答案 0 :(得分:0)
嘿由于您未在此处发布错误日志,我们无法识别问题,但正如您在上面提到的错误,当DDMS与设备之间的通信出现问题时,会出现这些错误。它们通常是无害的,但您可以通过重新启动ADB服务器来解决它们:
adb kill-server
adb start-server
如果您正在使用模拟器并且这无法解决问题,请尝试删除并重新创建AVD。
注意:也请发布您的日志。
答案 1 :(得分:0)
将onItemClickListener代码替换为:
Intent i = new Intent(getApplicationContext(), DicomImageActivity.class);
// passing array index
i.putExtra("id", arg2);
startActivity(i);
答案 2 :(得分:0)
只需用getActivity()代替ShowRadiologyRequestsFragment.this,
class imageClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
try {
Bitmap selectedImage = cFindResult.get(arg2);
Intent i = new Intent(getActivity(), DicomImageActivity.class);
i.putExtra("Image", selectedImage);
getActivity().startActivity(i);
} catch (Exception e) {
e.printStackTrace();
}
}
答案 3 :(得分:0)
不幸的是我尝试了建议的解决方案,但没有一个工作,但我设法通过将Bitmap对象定义为静态来解决问题,所以我可以从新活动访问它,我认为这是一个与可以在活动之间传递的对象的有限大小。