Java 插入数据后如何刷新当前片段?

Java 插入数据后如何刷新当前片段?,java,android,fragment,Java,Android,Fragment,我来自印度尼西亚,我想在插入数据后刷新片段。。我多次尝试刷新一个片段。但它不能工作。 请帮帮我 这是我的密码 班级活动 public class MainActivity extends FragmentActivity { public MainActivity() { } DatabaseReference dataBaseref; StorageReference strRef; TextView logout; TabLayout t

我来自印度尼西亚,我想在插入数据后刷新片段。。我多次尝试刷新一个片段。但它不能工作。 请帮帮我

这是我的密码

班级活动

public class MainActivity extends FragmentActivity {

    public MainActivity() {

    }

    DatabaseReference dataBaseref;
    StorageReference strRef;
    TextView logout;
    TabLayout tabLayout;
    ViewPager viewPager;
    ViewPagerAdapter viewAdapter = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        dataBaseref = FirebaseDatabase.getInstance().getReference();
        strRef = FirebaseStorage.getInstance().getReference();

        tabLayout = findViewById(R.id.tab_layout_isi_menu);
        viewPager = findViewById(R.id.view_pager_isi_menu);
        logout = findViewById(R.id.text_logout);

        viewAdapter = new ViewPagerAdapter(getSupportFragmentManager(), MainActivity.this);

        viewAdapter.addFragment(new isi_list_beli(), "Beli");
        viewAdapter.addFragment(new isi_list_cek(), "Cek Data");

        viewPager.setAdapter(viewAdapter);
        tabLayout.setupWithViewPager(viewPager);


        logout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                logOut();
            }
        });


    }

    private void logOut() {
        AuthUI.getInstance()
                .signOut(MainActivity.this)
                .addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        startActivity(new Intent(MainActivity.this, LoginActivity.class));
                        finish();
                    }
                }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(MainActivity.this, "" + e.getMessage(), Toast.LENGTH_LONG).show();
            }
        });
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    public void onBackPressed() {
        super.finish();
    }

}
public类MainActivity扩展了FragmentActivity{
公共活动(){
}
数据库参考数据库参考;
存储参考stref;
文本视图注销;
表格布局;
查看页面查看页面;
ViewPagerAdapter viewAdapter=null;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dataBaseref=FirebaseDatabase.getInstance().getReference();
strRef=FirebaseStorage.getInstance().getReference();
tabLayout=findviewbyd(R.id.tab\u布局\u isi\u菜单);
viewPager=findViewById(R.id.view\u pager\u isi\u菜单);
注销=findviewbyd(R.id.text\u注销);
viewAdapter=new ViewPagerAdapter(getSupportFragmentManager(),MainActivity.this);
addFragment(新的isi_列表_beli(),“beli”);
addFragment(新的isi_列表_cek(),“cek数据”);
viewPager.setAdapter(viewAdapter);
tabLayout.setupWithViewPager(viewPager);
logout.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
注销();
}
});
}
私有无效注销(){
AuthUI.getInstance()
.signOut(MainActivity.this)
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
startActivity(新意图(MainActivity.this、LoginActivity.class));
完成();
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Toast.makeText(MainActivity.this,“+e.getMessage(),Toast.LENGTH_LONG.show();
}
});
}
@凌驾
受保护的void onResume(){
super.onResume();
}
public void onBackPressed(){
super.finish();
}
}
类isi_列表_cek

public class isi_list_cek extends Fragment {

    private ListView listView;
    public AdapterListCek adapterListCek = null;
    private ArrayList<Cek> cekArrayList;
    Cursor cursor;
    View view;
    FloatingActionButton fab;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        adapterListCek = new AdapterListCek(getContext(), R.layout.item_in_list_barang, cekArrayList);
        adapterListCek.notifyDataSetChanged();
    }

    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @NonNull Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.list_barang, container, false);

        listView = view.findViewById(R.id.list_item_barang);
        fab = view.findViewById(R.id.tambah_barang);

        cekArrayList = new ArrayList<>();
        adapterListCek = new AdapterListCek(getContext(), R.layout.item_in_list_barang, cekArrayList);
        listView.setAdapter(adapterListCek);

        cursor = fragment_input_data.sqlHelper.getData("SELECT * FROM CEK");

        if(cursor.moveToFirst()){
            cekArrayList.clear();
            do{
                int id = cursor.getInt(0);
                String kode = cursor.getString(1);
                String nama = cursor.getString(2);
                String jumlah = cursor.getString(3);
                String harga = cursor.getString(4);
                byte[] gambar = cursor.getBlob(5);

                cekArrayList.add(new Cek(id, kode, nama, harga, jumlah, gambar));
            }while (cursor.moveToNext());
            fragment_input_data.sqlHelper.close();
        }

        adapterListCek.notifyDataSetChanged();


        listView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                return false;
            }
        });

        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(getContext(), fragment_input_data.class));
            }
        });


        return view;
    }

    @Override
    public void onResume() {
        super.onResume();
    }
}
公共类isi\u列表\u cek扩展片段{
私有列表视图列表视图;
公共适配器ListCek AdapterListCek=null;
私人ArrayList cekArrayList;
光标;
视图;
浮动操作按钮;
@凌驾
创建时的公共void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
adapterListCek=新adapterListCek(getContext(),R.layout.item_in_list_barang,cekArrayList);
adapterListCek.notifyDataSetChanged();
}
@凌驾
创建视图时的公共视图(@NonNull LayoutInflater inflater、@Nullable ViewGroup container、@NonNull Bundle savedInstanceState){
视图=充气机。充气(R.layout.list\u barang,容器,假);
listView=view.findViewById(R.id.list\u item\u barang);
fab=视图.findViewById(R.id.tambah_barang);
cekArrayList=newarraylist();
adapterListCek=新adapterListCek(getContext(),R.layout.item_in_list_barang,cekArrayList);
setAdapter(adapterListCek);
cursor=fragment\u input\u data.sqlHelper.getData(“从CEK中选择*);
if(cursor.moveToFirst()){
cekArrayList.clear();
做{
int id=cursor.getInt(0);
字符串kode=cursor.getString(1);
String nama=cursor.getString(2);
String jumlah=cursor.getString(3);
字符串harga=cursor.getString(4);
字节[]gambar=cursor.getBlob(5);
添加(新的Cek(id、kode、nama、harga、jumlah、gambar));
}while(cursor.moveToNext());
fragment_input_data.sqlHelper.close();
}
adapterListCek.notifyDataSetChanged();
listView.setOnLongClickListener(新视图.OnLongClickListener(){
@凌驾
仅长按公共布尔值(视图){
返回false;
}
});
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
startActivity(新意图(getContext(),fragment_input_data.class));
}
});
返回视图;
}
@凌驾
恢复时公开作废(){
super.onResume();
}
}
类ViewPagerAdapter

public class ViewPagerAdapter extends FragmentStatePagerAdapter {

    private Map<Integer, String> mFragmentTags;
    private FragmentManager mFragmentManager;
    private Context mContext;
    private final List<Fragment> fragmentList = new ArrayList<>();
    private final List<String> fragmentListTitle = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager fm, Context mContext) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return fragmentList.get(position);

    }
    @Override
    public int getCount() {
        return fragmentListTitle.size();
        //return 2;


    }
    @NonNull
    @Override
    public CharSequence getPageTitle(int position) {
        return fragmentListTitle.get(position);
    }
    public void addFragment (Fragment fragment, String string){
        fragmentList.add(fragment);
        fragmentListTitle.add(string);
    }
}
公共类ViewPagerAdapter扩展了FragmentStatePagerAdapter{
私有地图标签;
私人碎片管理器MFFragmentManager;
私有上下文;
private final List fragmentList=new ArrayList();
私有最终列表fragmentListTitle=新ArrayList();
public ViewPagerAdapter(FragmentManager格式,上下文mContext){
超级(fm);
}
@凌驾
公共片段getItem(int位置){
返回碎片列表。获取(位置);
}
@凌驾
public int getCount(){
返回fragmentListTitle.size();
//返回2;
}
@非空
@凌驾
公共字符序列getPageTitle(int位置){
返回fragmentListTitle.get(位置);
}
public void addFragment(片段片段、字符串){
碎片列表。添加(碎片);
fragmentListTitle.add(字符串);
}
}

我希望当我插入一些数据时,fragment会自动更新它的视图。

调用一个函数:只需发送要重新创建的当前fragment的新实例

replaceFragment(new YourPresentFragment());
该功能可以如下所示:

private void replaceFragment(Fragment fragment) {

      String fragmentTag = fragment.getClass().getName();

      FragmentManager manager = getFragmentManager();
      FragmentTransaction ft = manager.beginTransaction();
      ft.replace(R.id.fragments, fragment, fragmentTag);
      ft.addToBackStack("fragments");
      ft.commit();

 }

这应该做的工作

请考虑将Android作为相关标签添加到可能的副本中。