and*_*ner 15 android android-edittext
我有两个文本字段和一个Button.我想禁用Button,除非两个EditText-Fields都不为空.我在stackoverflow上尝试了很多解决方案,但它们不起作用.这是我的代码:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class RegisterActivity extends Activity {
private EditText editText1;
private EditText editText2;
//TextWatcher
private TextWatcher textWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3)
{
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
checkFieldsForEmptyValues();
}
@Override
public void afterTextChanged(Editable editable) {
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register_activity);
editText1 = (EditText) findViewById(R.id.reg_password);
editText2 = (EditText) findViewById(R.id.reg_password2);
//set listeners
editText1.addTextChangedListener(textWatcher);
editText1.addTextChangedListener(textWatcher);
// run once to disable if empty
checkFieldsForEmptyValues();
TextView loginScreen = (TextView) findViewById(R.id.link_to_login);
loginScreen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity (new Intent(getApplicationContext(), DialogActivity.class));
finish();
}
});
}
private void checkFieldsForEmptyValues(){
Button b = (Button) findViewById(R.id.btnRegister);
String s1 = editText1.getText().toString();
String s2 = editText2.getText().toString();
if(s1.equals("") && s2.equals(""))
{
b.setEnabled(false);
}
else if(!s1.equals("")&&s2.equals("")){
b.setEnabled(false);
}
else if(!s2.equals("")&&s1.equals(""))
{
b.setEnabled(false);
}
else
{
b.setEnabled(true);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我开始活动,它将被禁用.但是,如果我输入某些内容,它有时会启用,有时也不会...如果两个"编辑 - 文本字段"都不为空,我只想启用该按钮.
non*_*oni 12
你的问题在这里:
//set listeners
editText1.addTextChangedListener(textWatcher);
editText1.addTextChangedListener(textWatcher);
Run Code Online (Sandbox Code Playgroud)
您没有将textWatcher设置为editText2,因此如果您在editText1中写入,则始终检查条件
小智 6
我知道这是旧的,但请记住,只需使用.isEmpty()
将允许您只添加一个空格,按钮将启用自己.
请s1.trim().isEmpty || s2.trim().isEmpty()
改用.
或者,您可以这样做:
String s1 = editText1.getText().toString().trim()
String s2 = editText2.getText().toString().trim()
然后检查一下.isEmpty()
.
我不知道,但是你想要这样做,而且这个答案很可能无关紧要,但我想我只是指出了这一点.
归档时间: |
|
查看次数: |
16359 次 |
最近记录: |