【问题标题】:Clear views data in fragment on switching tabs in fragmenttabhost在 fragmenttabhost 中切换选项卡时清除片段中的视图数据
【发布时间】:2015-05-27 11:18:53
【问题描述】:

我遇到了一个问题,我尝试了很多方法,但没有一种方法对我有用。我正在使用 fragmenttabhost 作为标签。在一个选项卡中,即 SearchFragment 选项卡中,有一个带有搜索按钮的编辑文本,并在其底部显示列表视图。

假设我执行搜索,现在向我显示列表,现在如果我通过单击另一个选项卡切换片段并返回搜索片段,仍然会显示列表以及我在 edittext 中键入的文本。

要求是:我希望片段打开时视图为空。我每次都在 onActivityCreated() 中调试它。

我使用的代码是this

请查看我已经在使用的代码

etSearch = (EditText) getView().findViewById(R.id.etSearch);
        etSearch.setText("");

在 setDefaultValues() 中

universityArrayList.clear();
        contactArrayList.clear();
        adapterUniversity = new AdapterUniversity(getActivity(), universityArrayList);
        lvUniversities.setAdapter(adapterUniversity);
        lvUniversities.setSelector(new ColorDrawable(Color.parseColor("#00000000")));
        lvContacts.setSelector(new ColorDrawable(Color.parseColor("#00000000")));
        adapterContacts = new AdapterContacts(getActivity(), contactArrayList);
        lvContacts.setAdapter(adapterContacts);

【问题讨论】:

  • 覆盖选项卡更改监听器,然后在选项卡更改时分离当前片段。
  • 看看这是我的TabsActivity代码,请告诉我如何解开。
  • 清除onCreateView中编辑文本中的数据
  • 我已经在 initialiseViews() 中清除了我在 onActivityCreated() 中调用的内容

标签: android fragment-tab-host


【解决方案1】:

当您切换到选项卡然后 onActivityCreated 或 onResume 时,您可以编写以下代码来清除 edittext 值

editTextSearch.setText("");

并使用您最初在相同方法中使用的相同适配器数据重新填充列表

ListAdapter customAdapter = new ListAdapter(this, R.layout.list_item, tempList); 
listview.setAdapter(customAdapter);

你也可以使用 notifySetDataChanged() 方法来更新数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多