我的程序中有一个ImageView作为按钮。我需要它成为一个ImageView,因为我只想显示图像,而不是边框。
这个按钮是一盏灯,如果数据库中的数据显示它是可见的,灯必须“打开”,当你点击按钮时,它会检查来自银行的数据并将其更改为“关闭”(如果它已打开)反之亦然。
因此,图像的更改将在onClick事件中发生。
这是我的代码:
btnVisualizar.setClickable(true);
btnVisualizar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
if (visivelBanco.getText().equals("Y")) {
btnVisualizar.setImageResource(this.getResources().getIdentifier(
"drawable/visible_off", null, this.getPackageName()));
} else {
btnVisualizar.setImageResource(
this.getResources().getIdentifier("drawable/visible_on", null, this.getPackageName()));
}
} catch (Exception e) {
Toast.makeText(
getBaseContext(),
"Falha ao modificar visibilidade do item!",
Toast.LENGTH_SHORT).show();
}
}
});
但编译器无法识别方法getResources()和getPackageName()。
我做错了什么?
感谢任何帮助。
答案 0 :(得分:0)
其中的this
是指onClickListener
。
使用[Activity] .this而不是this,其中[Activity]是Activity的名称
答案 1 :(得分:0)
试
String uri = "drawable/visible_off"
btnVisualizar.setImageResource(EdicaoActivity.this.getResources().getIdentifier(uri, "drawable", EdicaoActivity.this.getPackageName()));
答案 2 :(得分:0)
我认为您只需要使用R
类来获取drawable的标识符。例如:
btnVisualizar.setImageResource(R.drawable.visible_on);
你不应该惹恼getResources()
。