Java 即使在Android上单击事件之后也显示以前的文本
下面是我的图片按钮点击操作 点击后会显示“1空”,按住按钮会显示rightAnswer。我想演示一下完成按住按钮后保存的questionLabel字符串 我想做的是在动作发生之前定义“sharedFact”,并保持用户按钮后显示的文本不变 “rightAnswer”只能在用户按住imageButton时显示 我尝试使用普通的字符串文本,比如“test”,它可以工作,但是字符串sharedFact=questionLabel.getText().toString() ↑ 没有像我想的那样工作,问题是什么,如何解决Java 即使在Android上单击事件之后也显示以前的文本,java,android,Java,Android,下面是我的图片按钮点击操作 点击后会显示“1空”,按住按钮会显示rightAnswer。我想演示一下完成按住按钮后保存的questionLabel字符串 我想做的是在动作发生之前定义“sharedFact”,并保持用户按钮后显示的文本不变 “rightAnswer”只能在用户按住imageButton时显示 我尝试使用普通的字符串文本,比如“test”,它可以工作,但是字符串sharedFact=questionLabel.getText().toString() ↑ 没有像我想的那样工作,问题
findViewById(R.id.image_button_check).setOnTouchListener((v, event) -> {
String sharedFact = null;
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
sharedFact = questionLabel.getText().toString();
questionLabel.setText(rightAnswer);
break;
case MotionEvent.ACTION_UP:
//Here is only test "1" is for identify this code is working
//How can I save questionLabel Text before action down but inside click action?
questionLabel.setText(1 + sharedFact);
break;
}
return false;
});
将定义从函数内部移动到类数据成员
String sharedFact = null;
onCreate(){
// your code
findViewById(R.id.image_button_check).setOnTouchListener((v, event) -> {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
sharedFact = questionLabel.getText().toString();
questionLabel.setText(rightAnswer);
break;
case MotionEvent.ACTION_UP:
//Here is only test "1" is for identify this code is working
//How can I save questionLabel Text before action down but inside click action?
questionLabel.setText(1 + sharedFact);
sharedFact = null
break;
}
return false;
});
}
与此同时,我意识到我犯了一个愚蠢的错误。同样的方法也有效,谢谢