为啥当 Interstitial 关闭时先前输入的文本会从 TextView 中消失

Posted

技术标签:

【中文标题】为啥当 Interstitial 关闭时先前输入的文本会从 TextView 中消失【英文标题】:Why the previously entered text disappears from the TextView when Interstitial is closed为什么当 Interstitial 关闭时先前输入的文本会从 TextView 中消失 【发布时间】:2021-10-15 18:52:20 【问题描述】:

我有一个麦克风按钮,用户通过该按钮将文本输入到 TextView 中,每隔一秒点击停止麦克风按钮后,就会出现 Interstitial,但是,当出现 Interstitial 并且当 Interstitial 关闭时,之前输入的文本会从TextView,当再次启动麦克风启动按钮时,之前输入的文本再次出现。关闭插页式广告时需要执行哪些操作以保持文本可见。我试过onAdClosed 但失败了。谁能具体回答一下,谢谢!

InterstitialAd.java

InterstitialAd.load(getApplicationContext(),
                        mContext.getString(R.string.admob_interstitial_id),
                        new AdRequest.Builder().build(),
                        new InterstitialAdLoadCallback() 

                            @Override
                            public void onAdLoaded(@NonNull InterstitialAd interstitialAd) 
                                interstitialAd.show((Activity) mContext);
                            

                            public void onAdClosed() 
                                returnedText.setVisibility(View.VISIBLE);
                            
                        
                );

开始 - 停止麦克风按钮位于 MainActivity.java 中,并从 InterstitialAd.java 调用 Interstitial

InterstitialLaunch interstitialLaunch = new InterstitialLaunch();
interstitialLaunch.inter_launched(MainActivity.this);

【问题讨论】:

【参考方案1】:

我认为是因为在广告之后,您的片段再次调用 onCreate(随后是片段方法的正常生命周期)从零开始创建片段,如果是这种情况,那么您需要在显示之前将 UI 数据存储在某处广告并在以后每次 onViewCreated 时获取它(例如,但在 onCreateView/onStateRestored 中编写代码也可以完成这项工作),您可以使用 ViewModel 或 SharedPreferences 存储数据

您可以从这里开始阅读有关 viewModel 的信息:

ViewModel | android Developers

您也可以从这里开始阅读有关 sharedPerfreneces 的信息:

Save key-value data |Android Developers

【讨论】:

哈哈,你是对的,太棒了,你给了我一个好主意,解决了,它有效,谢谢你的朋友。 SharedPerfreneces 是一个巧妙的解决方案! 欢迎您,别忘了接受我对您问题的回答;D

以上是关于为啥当 Interstitial 关闭时先前输入的文本会从 TextView 中消失的主要内容,如果未能解决你的问题,请参考以下文章

保留文本框的先前值,直到表单关闭

为啥 dlmalloc 分配的块头包含 4 个字节的先前分配的块 [关闭]

Admob interstitial显示黑屏

为啥我在lldb中输入图像查找<地址>时没有输出? [关闭]

Django - 表单无效时输入数据的先前页面

为啥 useRef 值在它是整数时会动态更新,但在它是字符串时会存储先前的值?