我想在运行时更改可绘制资源文件。
.java文件代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button)findViewById(R.id.button);
edt1 = (EditText)findViewById(R.id.name);
edt2 = (EditText)findViewById(R.id.password);
str_name = edt1.getText().toString() ;
str_password = edt2.getText().toString();
if (str_name == 0 && str_password == 0) {
btn.setBackgroundResource(R.drawable.image);
}
else {
btn.setBackgroundResource(R.drawable.on_button_click);
}
问题是它应用了if
条件但是当我在EditText
中输入一些文本时,资源文件不会改变。
EditText
(s)属于TextInputLayout
。
答案 0 :(得分:0)
使用TextUtils.equals
判断str_name
是否等于0
。
使用TextUtils.equals
判断str_password
是否等于0
。
试试这个。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button);
edt1 = (EditText) findViewById(R.id.name);
edt2 = (EditText) findViewById(R.id.password);
str_name = edt1.getText().toString();
str_password = edt2.getText().toString();
// edited here
if (TextUtils.equals(str_name, "0") && TextUtils.equals(str_password, "0")) {
btn.setBackgroundResource(R.drawable.image);
} else {
btn.setBackgroundResource(R.drawable.on_button_click);
}
}
另一种解决方法。
if (Double.parseDouble(str_name) == 0 && Double.parseDouble(str_password) == 0) {
btn.setBackgroundResource(R.drawable.image);
} else {
btn.setBackgroundResource(R.drawable.on_button_click);
}
答案 1 :(得分:0)
用以下代码替换条件语句
if (str_name.equalsIgnoreCase("0") && str_password.equalsIgnoreCase("0") {
btn.setBackgroundResource(R.drawable.image);
}
您不能使用==来比较2个字符串。希望对你有帮助。