我需要在另一个活动开始时更改TextView的文本,但速度不够快,以便用户可以在更改活动之前看到它,因此它停留在那里并一直等到按下后退按钮并且用户返回上一个活动。
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的默认文本是“点击麦克风并录制”。 用户录制音频时,将其更改为“正在录制...” 当用户停止记录下一个活动自动加载时,在此阶段recordLabel应该为空白。 活动转换完成后(几毫秒),文本应更改为“再次执行!”。
在当前状态下,“再做一次!”录制停止时会显示文本,但用户将被移至下一个活动,除非他们返回,否则无法进行录制,这对他们来说很尴尬。
答案 0 :(得分:1)
与其更改标签文本,然后使用startActivity()
启动新活动,而是使用startActivityForResult()
启动新活动,然后在调用者活动的onActivityResult()
回调中更改标签文本
有关使用的详细信息,请参见https://developer.android.com/training/basics/intents/result
startActivityForResult()
和onActivityResult()
。