我需要在其他 Activity 启动时更改 TextView 的文本,但速度不够快,因此用户可以在 Activity 更改之前看到它,因此它会停留在那里并等待,直到按下后退按钮并且用户是返回到之前的 Activity 。
recordBtn.setOnTouchListener(new View.OnTouchListener() {
@SuppressLint("SetTextI18n")
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_UP:
if(isRecording) {
isRecording = false;
recordLabel.setText("Do it again!");
stopRecording();
startActivity(new Intent(AudioRecorder.this, VoiceChanger.class));
}
break;
case MotionEvent.ACTION_DOWN:
if(!isRecording) {
isRecording = true;
recordLabel.setText("Recording...");
startRecording();
}
break;
}
return false;
}
});
XML 中的默认文本是“点击麦克风并录音”。 当用户正在录制音频时,它会更改为“正在录制...” 当用户自动停止记录下一个 Activity 加载时,在这个阶段 recordLabel 应该是空白的。 Activity 转换完成后(几毫秒),文本应更改为“再做一次!”。
在当前状态下“再做一次!”文本在录制停止时出现,但用户正被转移到下一个 Activity ,除非他们返回,否则无法录制,这对他们来说很尴尬。
最佳答案
不是更改标签文本然后使用 startActivity()
启动新 Activity ,而是使用 startActivityForResult()
启动新 Activity ,然后更改标签文本onActivityResult()
调用者 Activity 的回调。
参见 https://developer.android.com/training/basics/intents/result有关使用的详细信息
startActivityForResult()
和 onActivityResult()
。
关于java - 一种在 TextView 中更改文本时间的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56532154/