catch (NotFoundException e) 不适用于我的情况
catch (NotFoundException e) is Not working for my case
我的应用程序一张一张地显示图像,图像名称是 a1、a2、a3...an,我试图在图像数量持续时捕获异常,但它对我不起作用。
这是代码:
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);
}
}
});
我的应用程序一张一张地显示图像,图像名称是 a1、a2、a3...an,我试图在图像数量持续时捕获异常,但它对我不起作用。 这是代码:
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);
}
}
});