我的片段活动使用此适配器在列表视图中显示所有结果。该页面将有一个标题选项卡,每个选项卡都有列表结果。
现在我从内部存储中读取的列表结果,每次我滑动到下一页时都会有轻微的滞后或延迟,所以我正在考虑在这个 pageradapter 中实现 ASYNCTask,这样体验会更好,但我不知道在哪里实现。大佬能指点一下吗??
public class ViewPagerAdapter extends PagerAdapter
{
public ViewPagerAdapter( Context context )
{
//This is where i get my title
for (HashMap<String, String> channels : allchannel){
String title = channels.get(KEY_TITLE);
titles[acc] = title;
acc++;
}
scrollPosition = new int[titles.length];
for ( int i = 0; i < titles.length; i++ )
{
scrollPosition[i] = 0;
}
}
@Override
public String getPageTitle( int position )
{
return titles[position];
}
@Override
public int getCount()
{
return titles.length;
}
@Override
public Object instantiateItem( View pager, final int position )
{
String filename = null;
ListView v = new ListView( context );
final ArrayList<HashMap<String, String>> items = new ArrayList<HashMap<String, String>>();
DatabaseHandler db = new DatabaseHandler(context);
filename = openFile("PAGE1"); //OpenFile function is read file from internal storage
switch(position){
case 0:
filename = openFile("PAGE1");
break;
case 1:
filename = openFile("PAGE2");
break;
case 2:
filename = openFile("PAGE3");
break;
}
try{
//Use json to read internal storage file(Page1/Page2) and display all the result on the list
}
}catch(Exception e){
}
ListAdapter listadapter=new ListAdapter(context, items);
v.setAdapter( listadapter );
((ViewPager)pager ).addView( v, 0 );
return v;
}
@Override
public void destroyItem( View pager, int position, Object view )
{
( (ViewPager) pager ).removeView( (ListView) view );
}
@Override
public boolean isViewFromObject( View view, Object object )
{
return view.equals( object );
}
@Override
public void finishUpdate( View view )
{
}
@Override
public void restoreState( Parcelable p, ClassLoader c )
{
if ( p instanceof ScrollState )
{
scrollPosition = ( (ScrollState) p ).getScrollPos();
}
}
@Override
public Parcelable saveState()
{
return new ScrollState( scrollPosition );
}
@Override
public void startUpdate( View view )
{
}
}