gpt4 book ai didi

android - 无法在后台线程中加载 LayoutInflater

转载 作者:搜寻专家 更新时间:2023-11-01 08:59:12 27 4
gpt4 key购买 nike

我有一个 Fragment,它在 onCreateView 方法中有很多代码,所以我认为将这些代码放在外部线程中是个好主意。现在的问题是我必须在此线程中加载布局,但是如果我在 Activity 的 onStart 方法中创建此 Fragment 的新对象,它会在这一行出现 NullPointerException:

LayoutInflater inflater = getActivity().getLayoutInflater();

我认为 getActivity 返回 null 但为什么呢?我在 onStart 方法中创建对象。那里的 Activity 不应该返回 null 或者我的想法有什么问题?我的代码:

MyFragment f;

public class Tablet extends FragmentActivity
{
// onCreate(), Variables and so on...

@Override
protected void onStart()
{
super.onStart();
f = new MyFragment();
}
}

public class StundenAnsicht extends Fragment implements Runnable
{
public MyFragment()
{
Thread t = new Thread(this);
t.start();
}

@Override
public void run()
{
LayoutInflater inflater = getActivity().getLayoutInflater();
//...
}
}

最佳答案

I think getActivity returns null but why?

因为 fragment 还没有被添加到 Activity 中。事实上,使用所示的代码,您的 fragment 永远不会成为 Activity 的一部分,因为您没有通过 FragmentTransaction 将其添加到 Activity 中。

关于android - 无法在后台线程中加载 LayoutInflater,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16658283/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com