我正在處理一個viewpager,它有3張圖片,上面我通過getCurrentItem()設置了onClickListener,但是它不能正常工作。我的意思是,如果我打開應用程序,它的工作原理是完美的,但如果我滑動到圖像2,然後回到圖像1,它不再正常工作,如果圖像1是currentItem,則它們顯示第二種情況onClickListener,如果它是2,那麼它顯示第三種情況,所以,我不明白爲什麼。非常感謝 !Android ViewPager getCurrentItem()不起作用
******有兩個位置變量,因爲我嘗試了幾種方法,但沒有一個能正常工作。謝謝 !
MainActivity.java:
@Override
public Object instantiateItem(View collection, final int position) {
ImageView view = new ImageView(MainActivity.this);
view.setImageResource(pics[position]);
final int p = pager.getCurrentItem();
final ImageView img3 = (ImageView) findViewById(R.id.imageView3);
img3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
WallpaperManager myWallpaperManager = WallpaperManager
.getInstance(getApplicationContext());
try {
myWallpaperManager.setResource(p);
Toast.makeText(getApplicationContext(),
"Wallpaper-ul a fost setat cu succes!",
Toast.LENGTH_LONG).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
final ImageView img2 = (ImageView) findViewById(R.id.imageView2);
img2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
switch (p) {
case 1:
Intent m1 = new Intent(MainActivity.this, Maps.class);
startActivity(m1);
break;
case 2:
Intent i2 = new Intent(MainActivity.this, Romania.class);
startActivity(i2);
break;
default:
break;
}
}
});
final ImageView img = (ImageView) findViewById(R.id.imageView1);
img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
switch (position) {
case 1:
dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.dialog1);
dialog.setTitle("Materie:" + p);
Button btnSave = (Button) dialog.findViewById(R.id.button1);
btnSave.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
break;
case 2:
Intent i2 = new Intent(MainActivity.this, Romania.class);
startActivity(i2);
break;
default:
break;
}
}
});
((ViewPager) collection).addView(view, 0);
return view;
}
不,它並沒有幫助我所有的片段viewpager,因爲我有完全不同的東西。你能解釋更多關於setOffScreenPageLiit()嗎? – Andrei
我認爲你的getCurrentItem在錯誤的地方。爲什麼在你真正需要它之前不要執行int p = pager.getCurrentItem()?也看看這篇文章(http://stackoverflow.com/questions/8117523/how-can-i-get-page-number-in-view-pager-for-android) – Raghu
號不工作.. – Andrei