java - 一种在 TextView 中更改文本时间的方法?

标签 java android

我需要在其他 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/

相关文章:

java - 动态内存释放中的完全垃圾收集是什么意思?

java - 在 JSP/Servlet 中创建和处理多个 session

android - LinearLayout 未在 ScrollView 内扩展

java - 实现以创建报告方法以通过邮件向管理员报告

java - : Unable to Process Jar entry如何解决

java - 如何在同一应用服务器上从一只耳朵访问另一只耳朵的方法

java - 每个项目具有不同宽度大小的 RecyclerView

android - 批量选择位图/ImageViews android

android - ExoPlayer Cant播放一些音频流

android - 如何向谷歌地图标准标记添加字母