gpt4 book ai didi

java - 将 setText 用于 EditText 框,onClick 认为它为空

转载 作者:行者123 更新时间:2023-12-01 14:11:04 25 4
gpt4 key购买 nike

我希望这是一个简单的修复。我不知道我在这里缺少什么。这是一个登录表单,我让它记住以前的登录电子邮件和共享首选项。 editText 框在 onCreate 中预填充了电子邮件,但 onClick 认为 editText 字段为空。有什么想法吗?

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
setContentView(R.layout.main);

email = (EditText) findViewById(R.id.login_email_address);
pass = (EditText) findViewById(R.id.password);

login = (Button) findViewById(R.id.blogin);
text = (TextView) findViewById(R.id.invalid_email);


// register listeners
newuser.setOnClickListener(this);
login.setOnClickListener(this);
app_preferences = PreferenceManager.getDefaultSharedPreferences(this);

String restoredemail = app_preferences.getString("username", null);
if (restoredemail != null) {
email.setText(restoredemail);

email.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if (email.getText().toString()
.matches("[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+")
&& s.length() > 0) {
text.setText("valid email");
valid_email = true;
//user_email = email.toString();
} else {
text.setText("invalid email");
}
}

public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}

public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
});
}

}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.blogin:
if (valid_email == true) {
new AttemptLogin().execute();
}else{

最佳答案

好的,我明白了。

我有一个 addTextChangedListener 来检查在提交之前是否输入了有效的电子邮件。由于文本没有改变(正在输入),所以它没有注册。我不知道这是否有一天会对某人有所帮助,但这里是修改后的代码。感谢所有对此提供帮助的人。

String restoredemail = app_preferences.getString("username", null);
if (restoredemail != null) {
email.setText(restoredemail);
valid_email = true;
text.setText("valid email");
}else{

email.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if (email.getText().toString()
.matches("[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+")
&& s.length() > 0) {
text.setText("valid email");
valid_email = true;
//user_email = email.toString();
} else {
text.setText("invalid email");
}
}

public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}

public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
});
}

}

关于java - 将 setText 用于 EditText 框,onClick 认为它为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18521747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com