gpt4 book ai didi

android在 View 寻呼机中异步加载数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:41 25 4
gpt4 key购买 nike

我需要一个 View 寻呼机实现的解决方案。首先,我在单个页面中从数据库加载大量数据,因此有时在滑动过程中会减慢滑动频率(您需要在页面上多次滑动),因为它在后台执行获取任务。我没有使用异步任务来返回 View 。有什么方法可以延迟加载页面,只允许用户通过滑动进入其他页面,但数据是延迟加载的。

我的代码示例如下;

 public Object instantiateItem(View container, int position) {

View v;

v = View.inflate(context,R.layout.swipearea, null);

listView = (ListView)v.findViewById(R.id.MyListView);
largeDataCall();
((ViewPager)container).addView(v);
return v;
}

我在创建方法中调用它。

pager=(ViewPager) findViewById(R.id.pagerAdapter);
pager.setAdapter(new SimplePager(MyPager.this));
pager.setCurrentItem(364);

有什么解决办法吗?

最佳答案

我建议使用 fragment (而不是直接使用 View )。

您的 fragment 需要一个接口(interface)来告诉它们何时显示:

public interface IShowedFragment {

public void onShowedFragment();
}

让所有 fragment 实现该接口(interface),并在该方法中调用加载器/asyncTasks/后台任务。

然后在您的 ViewPager 上放置一个 onPageChangeListener,当您检测到用户更改了页面时,调用您 fragment 上的接口(interface)方法。您可以使用此监听器进行一些选择,其中一种方法可以等待 viewPager 停止滑动以触发您的接口(interface)调用。

为了能够获得正确的 fragment 来进行此调用,请从 yourFragmentApadter.instantiateItem(ViewGroup, int) 中获取 fragment ,如果 fragment 已加载,它将返回该位置的 fragment 。

mPager.setOnPageChangeListener(new OnPageChangeListener() {

@Override
public void onPageSelected(int position) {

Fragment fragment = (Fragment) mAdapter.instantiateItem(mPager, position);
if(fragment instanceof IShowedFragment){
((IShowedFragment) fragment).onShowedFragment();
}
}
(...)

像这样,您可以用空 View 准备您的 fragment ,当您在一个 View 上滑动时,您就开始加载数据。

关于android在 View 寻呼机中异步加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10703083/

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