我有两项活动。第一个活动有一个列表,第二个活动显示与列表中所选项目相关的内容。我创造了 PagerAdapter的子类,通过轻扫不必返回第一个活动并选择下一个项目来更改第二个活动的内容。 (与翻页完全相同)。但问题是当我选择一个项目时,第二个活动从开始开始!当我在instantiateItem()方法中设置setCurrentItem()方法以提供相应项目的内容时,它可以工作,但是我无法刷页面并更改文本! 无论如何,我想从中间打开一本书并正常翻转! :) 我怎样才能消除这些问题? TNX!
class MyPagesAdapter extends PagerAdapter
{
@Override
public int getCount()
{
return DataStorage.SIZE;
}
//Create the given page (indicated by position)
@SuppressLint("InflateParams")
@Override
public Object instantiateItem(ViewGroup container, int position)
{
View page = inflater.inflate(R.layout.view_pager, null);
DB.setTextDescription(position + 1);
((TextView)page.findViewById(R.id.textView1)).setText(""+DataStorage.ID);
((TextView)page.findViewById(R.id.textView2)).setText(DataStorage.EnglishTitle);
((TextView)page.findViewById(R.id.textView3)).setText(""+DataStorage.EnglishContext);
((TextView)page.findViewById(R.id.textView4)).setText(""+DataStorage.PersianTitle);
((TextView)page.findViewById(R.id.textView4)).setTypeface(typeFace);
((TextView)page.findViewById(R.id.textView5)).setText(""+DataStorage.PersianContext);
((TextView)page.findViewById(R.id.textView5)).setTypeface(typeFace);
//Add the page to the front of the queue
((ViewPager) container).addView(page, 0);
return page;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1)
{
//See if object from instantiateItem is related to the given view
//required by API
return arg0==(View)arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object)
{
((ViewPager) container).removeView((View) object);
object=null;
}
}
答案 0 :(得分:0)
我没有看到你的所有代码,但它应该像这样工作。
当您通过Activity
从一个Intent
切换到另一个通过所选项目ID时。在您的第二个onCreate()
内Activity
获取该ID,然后在ViewPager
上使用它。您可能需要将ID转换为项目位置,以便拨打setCurrentItem()
。