【发布时间】:2012-09-03 14:09:59
【问题描述】:
我刚刚在res 文件夹下添加了一个新的drawable 文件夹。在drawable 文件夹中,我从drawable-hdpi 文件夹中复制了ic_launcher.png 文件。
当我按下按钮时,我想通过新的图像更改标准的ImageButton 图像。我写了一些代码,但是当我启动应用程序时,它崩溃了。
Button imgButton;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.imgButton).setOnClickListener(imgButtonHandler);
}
View.OnClickListener imgButtonHandler = new View.OnClickListener() {
public void onClick(View v) {
imgButton.setBackgroundResource(R.drawable.ic_launcher);
}
};
编辑:我改成了这个,这也行不通。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imgButton = (Button) findViewById(R.id.imgButton);
imgButton.setOnClickListener(imgButtonHandler);
}
View.OnClickListener imgButtonHandler = new View.OnClickListener() {
public void onClick(View v) {
imgButton.setBackgroundResource(R.drawable.ic_launcher);
}
};
编辑 2:这行得通。谢谢大家。
ImageButton button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button= (ImageButton)findViewById(R.id.imgButton);
button.setOnClickListener(imgButtonHandler);
}
View.OnClickListener imgButtonHandler = new View.OnClickListener() {
public void onClick(View v) {
button.setBackgroundResource(R.drawable.ic_launcher);
}
};
【问题讨论】:
-
你应该在这里粘贴你的 logcat 错误。
-
NullpointerException coz imgButton is null ...您可以将 View v 转换为 Button 或在 setContentView 之后设置 imgButton ...
-
你的编辑就是我的答案,这行得通!
-
这不起作用的唯一方法是,如果您的 id 不是“imgButton”(R.id.imgButton)。
-
未点击时如何将其设置为不同的图像。
标签: android image imagebutton