【发布时间】:2017-07-13 18:07:59
【问题描述】:
谁能告诉我为什么当edittext中的文本为空时我的按钮没有被禁用?我已经尝试了很多方法,但它从来没有奏效!这是我手头的简化代码。
代码:
public class MapStartActivity extends FragmentActivity {
EditText mapName;
Button NextPageStart;
private TextWatcher textWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
checkFieldsForEmptyValues();
}
@Override
public void afterTextChanged(Editable s) {
}
};
private void checkFieldsForEmptyValues(){
String s1 = mapName.getText().toString();
if (s1.trim().isEmpty()) {
NextPageStart.setEnabled(true);
} else {
NextPageStart.setEnabled(false);
NextPageStart.setAlpha(.5f);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map_start);
NextPageStart = (Button) findViewById(R.id.NextStatLocBut);
mapName = (EditText) findViewById(R.id.MapNameText);
//Click Listener for button
NextPageStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mapName.addTextChangedListener(textWatcher);
}
});
}
}
【问题讨论】:
-
最初禁用按钮,因为 EditText 将为空。根据您的代码,如果您的 Edittext 为空,则您的按钮已启用,根据您的问题 if (s1.trim().isEmpty()){}
标签: java android android-edittext android-button