pager.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int position,long id) {
public void restoreState(Parcelable state, ClassLoader loader) {
}
public Parcelable saveState() {
return null;
}
public void startUpdate(View container) {
}
}
}
答案 0 :(得分:19)
在instantiateItem()中的图像上设置监听器:
@Override
public Object instantiateItem(View collection, int position) {
final LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.my_layout, null);
final ImageView image = (ImageView)layout.findViewById(R.id.image_display);
final int cPos = position;
image.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
ImageView i = (ImageView)v;
if(cPos == 0)
{
//...
}
//...
}
});
return layout;
}
或者,您可以使用ImageView.setTag()
方法来包含有关要启动的Activity的数据。 e.g。
if(position == 0) image.setTag("com.blah.android.SomeActivity");
if(position == 1) image.setTag("com.blah.android.AnotherActivity");
//...
上面的onClick()内部改为:
ImageView i = (ImageView)v;
String activityClassName = (String)i.getTag(); // Get the info we stored in the tag.
MyActivity.this.startActivity((new Intent()).setClassName(MyActivity.this, activityClassName));
请注意,此处您实际上并不需要强制转换为ImageView,因为getTag()
是View
的方法。每个ImageView也不需要单独的OnClickListener。您可以创建一个OnClickListener的单个实例来抓取上面的标记数据,并启动相应的活动。在instantiateItem()
内的每个ImageView上设置此OnClickListener。
P.S。如果您正在下载图像,我强烈建议您查看一些为Android编写的图像下载程序。例如 https://github.com/nostra13/Android-Universal-Image-Loader