Android 更改文本时启用和禁用按钮
我正在开发一个walk应用程序,其中用户可以在拨号盘中设置他的目标。我希望当用户输入的目标值超过阈值时,“开始”按钮应禁用,一旦用户更改目标,按钮应启用。 我试过了,但按钮设置为禁用,即使我更改了目标。这是我的密码Android 更改文本时启用和禁用按钮,android,Android,我正在开发一个walk应用程序,其中用户可以在拨号盘中设置他的目标。我希望当用户输入的目标值超过阈值时,“开始”按钮应禁用,一旦用户更改目标,按钮应启用。 我试过了,但按钮设置为禁用,即使我更改了目标。这是我的密码 free_walk_elapsed_time_distance.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable ar
free_walk_elapsed_time_distance.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable arg0) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
}
@Override
public void onTextChanged(CharSequence arg0, int start, int before,
int count) {
if (arg0.length() == 0) {
// No entered text so will show hint
free_walk_elapsed_time_distance.setTextSize(TypedValue.COMPLEX_UNIT_SP, mHintTextSize);
} else {
free_walk_elapsed_time_distance.setTextSize(TypedValue.COMPLEX_UNIT_SP, mRealTextSize);
}
if (arg0.length() > 0) {
// add toast message
if (targetType.equals(ParamConstants.FREE_WALK_TIMEBASEDWALK)) {
if (Integer.parseInt(getTargetString()) > 120) {
// startFreeWalk();
Toast.makeText(getActivity(), "Please enter a target between 1 and 120 minutes", Toast.LENGTH_LONG).show();
}
}
else{
if(Integer.parseInt(getTargetString()) > 30 ) {
Toast.makeText(getActivity(), "Please enter a target between 1 and 30 kilometers", Toast.LENGTH_LONG).show();
free_walk_start_btn.setClickable(false);
free_walk_start_btn.setBackgroundColor(Color.parseColor("#808080"));
}
}
mSeekArkfreeWalk.setProgress(Integer.parseInt("" + arg0));
mSeekArkfreeWalkDistance.setProgress(Integer.parseInt("" + arg0));
}
}
任何人都能告诉我如何更正它。
按钮。setEnabled(false)
应该可以做到这一点。@vucko的可能副本这将禁用按钮,但我希望在用户设置有效目标时启用。按钮。setEnabled(true)代码>
if (arg0.length() > 0) {
// add toast message
if (targetType.equals(ParamConstants.FREE_WALK_TIMEBASEDWALK)) {
if (Integer.parseInt(getTargetString()) > 120) {
// startFreeWalk();
Toast.makeText(getActivity(), "Please enter a target between 1 and 120 minutes", Toast.LENGTH_LONG).show();
}else{
free_walk_start_btn.setClickable(true);//ENABLE
BUTTON BACK
free_walk_start_btn.setEnable(true);
}
else{
if(Integer.parseInt(getTargetString()) > 30 ) {
Toast.makeText(getActivity(), "Please enter a target between 1 and 30 kilometers", Toast.LENGTH_LONG).show();
free_walk_start_btn.setClickable(false);
free_walk_start_btn.setBackgroundColor(Color.parseColor("#808080"));
}
}
mSeekArkfreeWalk.setProgress(Integer.parseInt("" + arg0));
mSeekArkfreeWalkDistance.setProgress(Integer.parseInt("" + arg0));
}
free_walk_elapsed_time_distance.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!s.toString().trim().equals("")) {
//write your code
myButton.setEnabled(false);
} else {
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
myButton.setEnabled(true);
}
});