我在android中有一个片段,我想在某个任务后重新启动片段,这样如果我有一些文本字段并在屏幕上检查,它们就会得到它们的初始状态。
public class upload_notice_fragment extends Fragment {
public upload_notice_fragment(Activity activity) {
this.activity = activity;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View fragment = inflater.inflate(R.layout.upload_notice_fragment, container, false);
uploadData();
return fragment;
}
private void uploadData() {
FirebaseFirestore storeReference = FirebaseFirestore.getInstance();
HashMap<String, String> map = new HashMap<>();
map.put("date", new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).format(new Date()));
map.put("time", new SimpleDateFormat("hh:mm a", Locale.getDefault()).format(new Date()));
storeReference.collection("date-time").add(map)
.addOnSuccessListener(documentReference -> {
// Restart the fragment here......
FragmentManager fragmentManager = getSupportFragmentManager();
MyFragment myFragment = new MyFragment();
fragmentManager.beginTransaction()
.replace(R.id.fragment_container, myFragment)
.commit();
})
.addOnFailureListener(e -> {
Toast.makeText(getContext(), "Something Went Wrong!", Toast.LENGTH_SHORT).show();
});
}
}
这就是我想做的。
我已经尝试实现您提供的代码,但它导致Image For Reference
3条答案
按热度按时间lg40wkob1#
您可以使用以下代码再次调用该片段
而不是'MyFragment'使用您的片段
aor9mmx12#
您可以使用以下代码重新启动片段:
您必须将YOUR_FRAGMENT_CONTAINER替换为您的片段容器,将YourFragment替换为您的片段名称。
f8rj6qna3#
当你在执行任务时,你可以简单地通过使用下面的代码行来删除片段://删除当前片段
然后通过编写代码再次添加片段:
因此,您更新的数据将再次获取,或者您可以简单地创建一个更新数据的函数,方法是在任务完成时传递并调用它。