- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个 Activity ,一个 MainActivity 和一个辅助 Activity (例如:关于屏幕),然后我有一个异步任务,它更新 MainActivity 上的 UI。这部分工作正常,asynctask 通过调用 MainActivity 中的一个方法来更新 UI,该方法会膨胀 UI 并设置一些值。此方法还使所有 UI 组件可见。
不起作用的是,在转到“关于”屏幕并返回到 MainActivity 后,用户界面完全是空白的。我不明白为什么这会在从其他 Activity 导航回来后停止工作,否则工作正常。
有人可以建议吗?
这是我绘制 UI 的方式。这就是我从线程更新它的方式,它一直有效,直到我转到关于屏幕:
private void DisplayMainContent()
{
Context context = Util.DataStruct.LoadContext();
Log.d("debug", "DisplayMainContent() loaded a context " + context.toString());
RelativeLayout parent = (RelativeLayout)((Activity)context).findViewById(R.id.action_settings);
LayoutInflater li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = li.inflate(R.layout.activity_main, parent);
TextView version = (TextView) v.findViewById(R.id.latestVerField);
version.setText(Util.DataStruct.GetVal("version"));
}
最佳答案
关于消失数据的小故事..
建议:
nice example how to show dialog using fragment
单例保留了传统的类方法,不需要在任何地方都使用 static 关键字。它们最初可能对实现要求更高,但会大大简化您的程序的体系结构。与静态类不同,我们可以使用单例作为参数或对象。此外,您可以像使用任何其他类一样使用带有接口(interface)的单例。
我在哪里看到问题:
这一行是你需要追查你的错误的全部:(我认为你的代码的任何其他 fragment 都与你的问题无关)
version.setText(Util.DataStruct.GetVal("version"));
解释原因:
Util.DataStruct:
你知道垃圾收集器的存在吗?
我想指出什么? 为什么你应该避免静电!?
代码(数据)流:
上下文:
你从哪里使用你的 DisplayMainContent() ?你在那里需要什么背景?
上下文应该是您需要它的应用程序方法的“ anchor ”。 (这就像某些安全性的东西——“嗨,这个应用程序 fragment 属于我,我有权修改和查看内容——所以做任何你通过最近的上下文你得到的东西——来自 fragment Activity 对话框小部件等”)
如果您可以使用 getContext() 例如。 ("from parent") - 不要使用任何静态的
例子:
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Context context = container.getContext();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Context context = parent.getContext();
}
关于通货膨胀 - 使用:
LayoutInflater.from(context).inflate(res,ViewGroup,attachToRoot);
对于@bcorso:
不要使用超出您需要的资源。
@TomaszBest sorry, but you really don't know what you're talking about: Util.DataStruct.GetVal() is calling a static method of the static class Util.DataStruct, and therefore must return a static class variable. Static class variables are singletons (only one will ever be created), and it will not get garbage collected.
通过静态成员变量引用的对象被强引用,直到该类被卸载。普通的 ClassLoader 从不卸载类,但应用程序使用的类加载器会在正确的条件下卸载。
如果静态字段更改为引用不同的对象,则静态字段指向的原始对象与任何其他对象一样有资格进行 GC!
Section 2.11 Static Initializers of suns JVM spec. 中介绍了静态变量的初始化 该规范未定义垃圾回收的实现 - 静态对象的垃圾回收规则会因您的 VM 而异。
总结:
如果你的类永久持有这个对象,它只会在虚拟机退出时被释放。只有引导加载程序加载的类和接口(interface)可能不会被卸载。
关于android - 从不同的 Activity 回来后 MainActivity 不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31757060/
因此,我正在学习 Lynda.com 上关于使用 Google map V2 构建移动应用程序的教程,并且我正在学习一个让您创建 map 应用程序的部分,该应用程序以编程方式查找位置,而不是依赖于se
我有一个 Mainactivity,其中包含一个 Layout,它是 4 个子布局的父级。单击子布局后,我将使用一个新 fragment 替换主布局。但我无法在按下返回按钮后返回 MainActivi
如你所见 this@MainActivity 或 MainActivity@this 在 kotlin 中开始 Activity 时有效。我试图找出答案,但我什么也没找到。谁能知道它的确切区别以及哪个
Solve by using getActivity() 我有这个 MainActivity.java 和 RepeatEntry.java 在我的 MainActivity 中,我有这个代码来实现
我正在尝试将 Google Analytics 集成到我的应用程序中,并遵循来自 here 的教程一切就绪: 我有一个 MainActivity,它扩展了 Activity 并附加了三个 Tab Fr
EditText 对象未创建,为什么? EditText editText=(EditText)findViewById(R.id.edittext); 这适用于扩展 AsyncTask 类的应用程序
所以我正在尝试了解 Android Fragments。如果我将以下代码放入我的 MainActivity 中: public void getMessage(Object obj) { Lo
我试图在我的Android设备上运行我的Android应用程序,但它一直显示我的主活动不存在,尽管我的主活动类在那里。我试图创建一个新的项目,然后复制我以前的代码,它在一段时间内奏效了。但随后它又产生
//主要活动 package com.going.books; import androidx.appcompat.app.AppCompatActivity; import androi
这似乎是一个我不好意思问的基本问题,但我对我的 Fragment 学习曲线感到非常沮丧,以至于我会暴露我的无知。 教科书中的一个例子,它削减了很多角落,使得扩展变得困难,即使它们有效,也没有按钮可以点
我正在将我的启动 Activity 从“MainActivity”更改为“RealMain”我在 list 中声明了这一点,但是 MainActivity 仍然首先出现。有人可以启发我吗?代码来 se
它失败了@ below line - bindService(intent, m_serviceConnection, Context.BIND_AUTO_CREATE); 下面是轨迹.... Act
我的项目在调试状态下正常工作。当我打开MainActivity.java文件时,这在import androidx.annotation.NonNull;上显示了问题 并在下面显示错误。 FAILUR
我在 MainActivity 类中看到了这样的代码: class MainActivity : AppCompatActivity() { private val languages = a
我的问题是关于如何制作启动屏幕,并在 MainActivity 完成渲染时完成启动屏幕,而不是通过设置超时。 我已经搜索过如何制作闪屏并且我已经做到了,但主要是他们使用超时来设置闪屏何时必须关闭/完成
大家好,我正在尝试为我的 Android 手机开发一个手电筒应用程序,但是当我运行它时出现错误。 GUI 有 2 个按钮:1 个用于开灯,另一个用于关灯 这是代码: package com.examp
如何解决这个问题? MainActivity.this is not an enclosing class. 谢谢 public class uploadToServer extends AsyncT
我的 logcat 中出现一些错误,并且我的应用程序无法在我的智能手机上运行...我更改了 list 和 MainActivity 中的一些代码(名为 HomaActivity ) 这是我的 list
我想知道使用单例 MainAcitivity 是否是一个糟糕的设计选择,如下所示: public class MainActivity extends AppCompatActivity ... {
我正在创建一个像 WhatsApp 一样的应用程序,但我遇到了问题。该应用程序应该进入 LoginActivity,但它直接进入 MainActivity,而无需我登录。 我尝试更改 Android
我是一名优秀的程序员,十分优秀!