我正在尝试测试两个EditText视图,看看它们是否包含正确的用户名和密码。我遇到的问题是EditText输入显示“”,即使我已将文本输入到视图中。我在这里做错了什么?
package com.example.cs984x.iteration_one;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.iteration_one);
Button btn1 = (Button) findViewById((R.id.button));
final EditText userName = (EditText) findViewById((R.id.editText));
final EditText pw = (EditText) findViewById((R.id.editText1));
final TextView result = (TextView) findViewById(R.id.textView3);
final String u = userName.getText().toString();
final String p = pw.getText().toString();
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ((u.equals("Android")) && (p.equals("123123"))) {
result.setText("Success!");
}
else {
result.setText("Failed!");
}
}
});
答案 0 :(得分:1)
您正在创建活动期间初始化u和p(此时,editText为空)。您需要获取事件处理程序中的值(在onClick内部):
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ((userName.getText().toString().equals("Android")) && (pw.getText().toString().equals("123123"))) {
result.setText("Success!");
}
else {
result.setText("Failed!");
}
}
});
答案 1 :(得分:0)
问题:
u
,这是在文本为空白时在活动初始化时设置的。EditText userName = (EditText) findViewById((R.id.editText));
EditText pw = (EditText) findViewById((R.id.editText1));
TextView result = (TextView) findViewById(R.id.textView3);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String u = userName.getText().toString();
String p = pw.getText().toString();
if ((u.equals("Android")) && (p.equals("123123"))) {
result.setText("Success!");
}
else {
result.setText("Failed!");
}
}
});