android– 在Fragment外部执行adapter.notifyDataSetChanged()

android– 在Fragment外部执行adapter.notifyDataSetChanged(),第1张

概述我有一个片段是数据库值列表.我正在使用ListView向屏幕显示值.我有另一个片段,其中包含用于向数据库添加条目的按钮.所以我的问题是,当我通过点击第一个片段上的按钮向数据库添加条目时,我需要第二个片段(或应用程序中的第二个页面)来更新屏幕上显示的数据库值列表.这是数据库列

我有一个片段是数据库值列表.我正在使用ListVIEw向屏幕显示值.

我有另一个片段,其中包含用于向数据库添加条目的按钮.所以我的问题是,当我通过点击第一个片段上的按钮向数据库添加条目时,我需要第二个片段(或应用程序中的第二个页面)来更新屏幕上显示的数据库值列表.

这是数据库列表片段:

public class FragManage extends Fragment {private PunchesDataSource datasource;@OverrIDepublic VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container,    Bundle savedInstanceState) {    datasource = new PunchesDataSource(getActivity());    datasource.open();    List<Punch> values = datasource.getAllPunches();    // Use the SimpleCursorAdapter to show the elements in a ListVIEw    ArrayAdapter<Punch> adapter = new ArrayAdapter<Punch>(getActivity(),        androID.R.layout.simple_List_item_1, values);    VIEw myFragmentVIEw = inflater.inflate(R.layout.fragment_manage, container, false);    ListVIEw List = (ListVIEw) myFragmentVIEw.findVIEwByID(R.ID.List);    List.setAdapter(adapter);    return myFragmentVIEw;    }}

所以我只想在包含按钮的其他片段中执行adapter.notifyDataSetChanged()(类似这样):

    // Punch OUT button.    button out_button = (button) myFragmentVIEw.findVIEwByID(R.ID.out_button);    out_button.setonClickListener(new VIEw.OnClickListener() {        @OverrIDe        public voID onClick(VIEw v) {            datasource.createPunch("out-" + getTime());            FragManage.adapter.notifyDataSetChanged();        }      });

解决方法:

您可以使用具有更新片段的主活动的侦听器

在带有按钮的frag中添加这些

private voID onDBChanged(){    OnDBListener.DBChanged(true);}public voID setonDBListener(OnDBListener Listener){    this.OnDBListener = Listener;}public interface OnDBListener{    public voID DBChanged(boolean DB_Bool);}

然后在DB frag中

public voID update(){    adapter.notifyDataSetChanged();}

然后将监听器附加到创建frags的Main活动中

buttonsFragment.setonDBListener(new OnDBListener() {    @OverrIDe    public voID DBChanged(boolean DB_Bool) {        DatabaseVIEwFrag.update();    }});

当您在按钮片段调用中更新数据库时

onDBChanged() 

告诉它已更新的一切

总结

以上是内存溢出为你收集整理的android – 在Fragment外部执行adapter.notifyDataSetChanged()全部内容,希望文章能够帮你解决android – 在Fragment外部执行adapter.notifyDataSetChanged()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1118942.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存