Java 如何从函数中添加片段?

Java 如何从函数中添加片段?,java,android,android-fragments,Java,Android,Android Fragments,我想在屏幕上创建背景片段,用于加载查询 它不工作,我在屏幕上看不到碎片 public class internet { startQueryAsync(final Activity activity) { new Thread() { RelativeLayout backView = new RelativeLayout(activity); @Override public void run(

我想在屏幕上创建背景片段,用于加载查询

它不工作,我在屏幕上看不到碎片

public class internet {
    startQueryAsync(final Activity activity) {

       new Thread() {

            RelativeLayout backView = new RelativeLayout(activity);

            @Override
            public void run() {
                activity.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {

                        FragmentLoad fr = new FragmentLoad();
                        activity.getFragmentManager().beginTransaction().add(android.R.id.content, fr);
                    }
                });
            }
        }.start();
   }
}


public class FragmentLoad extends Fragment {

    public FragmentLoad() {
        super();
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

       View view = inflater.inflate(R.layout.fragment_load, container);
       view.setLayoutParams(lpFr);

       return view;
    }
}

我不明白它为什么不起作用。

您还没有提交您的片段事务。像这样改变你的方法

public void run() {
    FragmentLoad fr = new FragmentLoad();
    activity.getFragmentManager().beginTransaction().add(android.R.id.content, fr).commit(); // change this
}

您忘记执行
commit()片段的code>

例如:

activity.runOnUiThread(new Runnable() {
    @Override
    public void run() {
        // First, create your FragmentManager.
        FragmentManager manager = activity.getFragmentManager();

        // Then, create your transaction.
        FragmentTransaction transaction = manager.beginTransaction();

        // Add your fragment in the view.
        transaction.add(android.R.id.content, new FragmentLoad());

        // Commit the transaction.
        transaction.commit();
    }
});
您也可以使用来执行以下操作:

activity.getFragmentManager()
    .beginTransaction()
    .add(android.R.id.content, new FragmentLoad())
    .commit();
有关更多详细信息,请参阅


希望这有帮助。

您未能提交片段(即)activity.getFragmentManager().beginTransaction().add(android.R.id.content,fr.commit();我添加了提交,但我无论如何都看不到屏幕上的此帧尝试在提交事务后运行fragmentManager.executePendingTransactions()。。。