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()。。。