我试图通过连续编辑文本从用户那里获取价值。当他们第一次单击按钮时,我得到了该值,但是当我想在编辑文本中单击以获取第二个值时,第一个值已经存在,我想清除该值并获取新值。但它不起作用。
我尝试使用 edittext.getText().clear();和 edittext.setText(" ")。它将被清除,但是当我输入值并单击按钮时,它不会返回任何值。它返回 Null。
val = (EditText) findViewById(R.id.v);
check = (Button) findViewById(R.id.Check);
String value1;
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
value1 = val.getText().toString();
enterValue.setText(value1);
if(!value1.isEmpty()) {
try {
value = Integer.parseInt(value1);
//Checking the user input value:
if (value > max) {
Toast.makeText(getApplicationContext(), "Guess the Value Lower than " + String.valueOf(max), Toast.LENGTH_LONG).show();
}
else if(value < min) {
Toast.makeText(getApplicationContext(), "Guess the Value greater than " + String.valueOf(min), Toast.LENGTH_LONG).show();
}
.
.
.
我期望的是,当单击检查按钮时,我将获取该值,并且 edittext val 被清除,这样下次当我单击按钮时,它将返回输入的新值。
您应该发布更多代码。很难猜测您的问题出在哪里。 无论如何,将您的
value1
变量声明为 String 而不是 int,然后尝试您的方法。如果还是不行的话
试试这个方法:
public void checkValue(View view){
value1 = val.getText().toString();
enterValue.setText(value1);
if(!value1.equals("")) {
try {
value = Integer.parseInt(value1);
//Checking the user input value:
if (value > max) {
Toast.makeText(getApplicationContext(), "Guess the Value Lower than " + String.valueOf(max), Toast.LENGTH_LONG).show();
}
else if(value < min) {
Toast.makeText(getApplicationContext(), "Guess the Value greater than " + String.valueOf(min), Toast.LENGTH_LONG).show();
}
.
.
. //Put here whatever your further code is.
edittext.setText("");
}
转到您的 xml 文件并按照上述方法设置按钮的
onClick
属性 checkValue
.
Edittext val;
inside button.setOnClickListener(){
val.settext(null);
}
也许问题在 value1 附近?你尝试将 String 设置为 int 。