从 PagerAdapter 开始新的 Activity
Start new Activity from PagerAdapter
如何使用来自 PagerAdapter class 的 Intent 启动一个新的 Activity?
这就是我的 ViewPagerAdapter class 的样子。
public class ViewPagerAdapter extends PagerAdapter
这就是我尝试在 ViewPagerAdapter
的 OnClickListner 方法中开始新 activity 的方式
@Override
public void onClick(View v) {
// Page is clicked
NewsItem item = ViewPagerAdapter.this.newsItems.get(position);
Log.w("TAP ON NEWS ITEM ", item.getTitle());
// start ImageViewer Activity
Intent readMore = new Intent(getActivity(), ReadMoreActivity.class);
startActivity(readMore);
}
});
getActivity()
和 startActivity
方法在 PagerAdapter
中不可用。所以使用 v.getContext()
准备 Intent 并调用 startActivity
方法:
Intent readMore = new Intent(v.getContext(), ReadMoreActivity.class);
v.getContext().startActivity(readMore);
public class ViewPagerAdapter extends PagerAdapter{
Context _context;
public ViewPagerAdapter (Context context){
_context = context;
}
}
你的其余代码在你的问题中,甚至其他答案也有效:),
如何使用来自 PagerAdapter class 的 Intent 启动一个新的 Activity? 这就是我的 ViewPagerAdapter class 的样子。
public class ViewPagerAdapter extends PagerAdapter
这就是我尝试在 ViewPagerAdapter
的 OnClickListner 方法中开始新 activity 的方式@Override
public void onClick(View v) {
// Page is clicked
NewsItem item = ViewPagerAdapter.this.newsItems.get(position);
Log.w("TAP ON NEWS ITEM ", item.getTitle());
// start ImageViewer Activity
Intent readMore = new Intent(getActivity(), ReadMoreActivity.class);
startActivity(readMore);
}
});
getActivity()
和 startActivity
方法在 PagerAdapter
中不可用。所以使用 v.getContext()
准备 Intent 并调用 startActivity
方法:
Intent readMore = new Intent(v.getContext(), ReadMoreActivity.class);
v.getContext().startActivity(readMore);
public class ViewPagerAdapter extends PagerAdapter{
Context _context;
public ViewPagerAdapter (Context context){
_context = context;
}
}
你的其余代码在你的问题中,甚至其他答案也有效:),