java - 单击按钮时如何连续使用编辑文本获取输入,删除编辑文本中的前一个值
问题描述
我正在尝试连续使用编辑文本从用户那里获取价值。当他们单击按钮时,我第一次获得了该值,但是当我想在编辑文本中单击以获取第二个值时,第一个值已经存在,我想清除它并获取新值。但它不起作用。
我尝试使用 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
。
推荐阅读
- c# - 匹配标记后第一个字符串的正则表达式
- c# - 来自数据库存储过程的 Gridview 数据源
- java - 如何从jsp中的jsp重定向到spring MVC控制器的另一个请求映射
- python - JSON 中缺少 Django (DRF) 布尔字段
- c++ - 无法转换 'std::vector
(*)[2]' 到 'std::vector **' 用于参数 '1' 到 'void getNextRowColumn(std::vector **)' - ios - 呈现视图控制器时键盘通知不一致
- java - 如何将 JSONArray 分配给变量?
- javascript - 从javascript数据数组中提取映射数组的最有效方法?(可以解构吗?)
- c++ - 我错过了什么,是什么导致内存泄漏 C++
- c - C 避免对齐问题