Android catch(notfounde)不适用于我的案例
我的应用程序正在一个接一个地显示图像,图像的名称是a1、a2、a3…一个,我试图捕捉图像数量持续时的异常,但它对我不起作用。 代码如下:Android catch(notfounde)不适用于我的案例,android,image,try-catch,Android,Image,Try Catch,我的应用程序正在一个接一个地显示图像,图像的名称是a1、a2、a3…一个,我试图捕捉图像数量持续时的异常,但它对我不起作用。 代码如下: imagename = getIntent().getExtras().getString("somekey"); resId = getResources().getIdentifier(imagename + num, "drawable", getPackageName()); try { i1
imagename = getIntent().getExtras().getString("somekey");
resId = getResources().getIdentifier(imagename + num, "drawable",
getPackageName());
try {
i10.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
image1.setImageResource(resId);
num++;
overridePendingTransition(R.anim.pushin, R.anim.pushout);
}
});
} catch (NotFoundException e){
e.printStackTrace();
i10.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(), Menu.class);
startActivity(i);
overridePendingTransition(R.anim.pushinhorizontal,
R.anim.pushouthorizontal);
}
});
}
您的try块正在处理未获取资源标识符的侦听器的分配 你应该这样做
imagename = getIntent().getExtras().getString("somekey");
i10.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int resID = 0;
try{
resId = getApplicationContext().getResources().getIdentifier(imagename + num, "drawable", getPackageName());
}catch (NotFoundException e){
e.printStackTrace();
}
if(resId > 0){
image1.setImageResource(resId);
num++;
overridePendingTransition(R.anim.pushin, R.anim.pushout);
}
else{
Intent i = new Intent(getApplicationContext(), Menu.class);
startActivity(i);
overridePendingTransition(R.anim.pushinhorizontal,
R.anim.pushouthorizontal);
}
}
});
似乎您正在尝试在click listener内部捕获异常,而在不起作用的外部捕获异常将所有代码放入
try-catch
块不是异常管理,那么最佳做法是什么?我不明白为什么要使用if(resId>0),因为它总是resId>0,问题是,当我们点击i10,到达最后一幅图像a60时,它会自动捕获异常并返回菜单。然后将try-catch块放入onClick
方法中。查看我的编辑当最后一张图片出现而没有找到下一张图片时,您的菜单
活动将启动。如果未找到图像,则resID
将为0,并且您的活动将被启动Edit显示错误消息:NotFoundException无法解析为类型,这与我的第一个代码的错误相同您是否导入android.content.res.Resources
?