【问题标题】:Programmatically add and remove items in ListFragment android以编程方式在 ListFragment android 中添加和删除项目
【发布时间】:2014-09-12 05:27:27
【问题描述】:

我正在使用 Android Studio Master/Detail 模板,我希望能够在我的主要活动中使用一个按钮从主列表中添加和删除项目。如果我使用 onListItemClick 方法,我可以在 xxxListFragment 类中执行此操作。但是如果我尝试在 xxxListFragment 类中创建一个单独的“public void onClickxxxbutton”方法,那么我的主要活动中的按钮就看不到片段中的回调。

在主要活动 (xxxListActivity) 的 java 文件中放置一个 onClick 处理程序没有任何作用(没有崩溃,但没有可见的 UI 更改)。

public void onClickNewPatient(View view){
PatientList.ITEMS.add(new Patient("2", "B12", "Nosebleed", 12, "F"));
}

我应该如何添加(和删除)项目?

如果这是一个愚蠢的问题,我很抱歉(看起来这应该是一件直截了当的事情),但我已经搜索了好几天,但找不到答案。

【问题讨论】:

  • 基本上这种类型的点击事件会在片段中被调用,它会尝试在片段的活动中调用。这样更好,您可以以编程方式将新的侦听器分配给该控件

标签: android android-listfragment master-detail


【解决方案1】:

如果您在代码中使用任何适配器来查看患者列表,您应该调用“adapter.notifyDataSetChanged()”来更新您的列表

【讨论】:

  • 唯一的适配器是ListFragment类文件的onCreate方法中动态创建的那个setListAdapter(new ArrayAdapter<Patient>(getActivity(), android.R.layout.select_dialog_singlechoice, android.R.id.text1, PatientList.ITEMS));有没有办法得到这个适配器的引用?
  • 试试这个 ((ArrayAdapter)getListAdapter()).notifyDataSetChanged();
  • 这不起作用,因为我的回调在我的主要活动类而不是 ListFragmant 类中。我收到 getListAdapter 无法识别的错误。
猜你喜欢
  • 2017-04-07
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多