gpt4 book ai didi

android - 如何更新另一个 Fragment 中的 ListView?

转载 作者:太空狗 更新时间:2023-10-29 13:25:13 24 4
gpt4 key购买 nike

我有一个 Activity ,其中包含一个带有 2 个 fragment 的 ViewPager。一个 fragment 用于将项目添加到 ListView,另一个 fragment 用于保存 ListView

我已经尝试了将近 3 天,但没有任何积极的结果。如何从第一个 fragment 更新另一个 fragment 的 ListView

我正在尝试从包含 ViewPager 的 Activity 中调用更新 ListView 的方法,但它不起作用。

ViewPager activity 调用方法:

@Override
public void onPageSelected(int position) {
library.populateListView(getApplicationContext());
aBar.setSelectedNavigationItem(position);
}

这是 populateListView 方法:

public void populateListView(Context context){      
CustomListViewAdapter customAdapter = new CustomListViewAdapter(getDatabaseArrayList(context), getActivity());

if (lView != null)
{
lView.setAdapter(customAdapter);
}
customAdapter.notifyDataSetChanged();
}

但是这不起作用,因为 lView 变量 (ListView) 为 null,因为 fragment 在调用时未显示。

最佳答案

我假设函数 populateListView() 是包含 ListView 的 fragment 的函数。您在每次调用 onPageSelected 时调用 populateListView()。你不应该检查正在选择的位置是什么。无论如何,populateListView() 方法应该是包含 ListView 的 fragment 的公共(public)方法。您可以从 Activity 中的 Viewpager 适配器实例化 fragment ,然后调用此方法。这样,listView 不应为空。

@Override
public void onPageSelected(int position) {
ListViewFragment frag=(ListViewFragment)adapter.instantiateItem(viewPager, 1);
//here adapter is the ViewPager Adapter and you must supply the viewpager that contains
//the fragments and also the position of the fragment to instantiate.
//For example 0 or 1 etc.
frag.populateListView(getApplicationContext());
aBar.setSelectedNavigationItem(position);
}

关于android - 如何更新另一个 Fragment 中的 ListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22180169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com