ViewPager OnItemClickListener

Я новичок в Viewpager, и после прочтения http://developer.android.com/reference/android/support/v4/view/ViewPager.html из google я не могу найти ничего связанного с viewPager.setOnItemClickListener(new OnItemClickListener() { У нас есть другие возможности действовать как элемент, который был нажат?

Тестирование

 viewPager.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent i = new Intent(MainActivity.this, SingleItemView.class); i.putExtra("flag", flag); i.putExtra("position", position); startActivity(i); } }); 

Ошибка: метод setOnItemClickListener (новый AdapterView.OnItemClickListener () {}) не определен для типа ViewPager

Для ViewPager не существует метода обратного вызова OnItemClick. Если вы хотите, чтобы события нажимали на каждую страницу, вам необходимо создать своего слушателя в содержимом страницы вашего адаптера.

что-то вроде этого:

 @Override public Object instantiateItem(View collection, final int pos) { //have to make final so we can see it inside of onClick() LayoutInflater inflater = (LayoutInflater) collection.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View page = inflater.inflate(R.layout.YOUR_PAGE, null); page.setOnClickListener(new OnClickListener(){ public void onClick(View v){ //this will log the page number that was click Log.i("TAG", "This page was clicked: " + pos); } }); ((ViewPager) collection).addView(page, 0); return page; } 

То, что вам нужно, будет зависеть от того, что еще вы делаете внутри instantiateItem() которое вы не разместили, поэтому я не могу дать вам более конкретный ответ.

Я внедрил пользовательский ViewPager :

 public class ClickableViewPager extends ViewPager { private OnItemClickListener mOnItemClickListener; public ClickableViewPager(Context context) { super(context); setup(); } public ClickableViewPager(Context context, AttributeSet attrs) { super(context, attrs); setup(); } private void setup() { final GestureDetector tapGestureDetector = new GestureDetector(getContext(), new TapGestureListener()); setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { tapGestureDetector.onTouchEvent(event); return false; } }); } public void setOnItemClickListener(OnItemClickListener onItemClickListener) { mOnItemClickListener = onItemClickListener; } public interface OnItemClickListener { void onItemClick(int position); } private class TapGestureListener extends GestureDetector.SimpleOnGestureListener { @Override public boolean onSingleTapConfirmed(MotionEvent e) { if(mOnItemClickListener != null) { mOnItemClickListener.onItemClick(getCurrentItem()); } return true; } } } 

И код для реализации onItemClickListener

 ClickableViewPager viewPager = (ClickableViewPager) findViewById(R.id.viewPager); viewPager.setOnItemClickListener(new ClickableViewPager.OnItemClickListener() { @Override public void onItemClick(int position) { // your code } }); 

Я не уверен, что вы ожидаете от вас ответить на вышеупомянутого слушателя.

Существует setOnClickListener(View.OnClickListener l) который вы можете использовать для обнаружения касания к viewPager.

Вы также можете использовать onPageScrolled для получения пользовательского ввода и onPageSelected и onTabSelected .

 @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { mActionBar.setSelectedNavigationItem(position); } @Override public void onPageScrollStateChanged(int state) { } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { Object tag = tab.getTag(); for (int i=0; i<mTabs.size(); i++) { if (mTabs.get(i) == tag) { mViewPager.setCurrentItem(i); } } } 
Intereting Posts
Как я могу активировать кнопку «Вверх» моей ActionBar, как кнопка «Назад» телефона? Как вы можете совместно использовать файлы cookie между DefaultHttpClient и WebView Неподдерживаемая версия major.minor 52.0 в моем приложении Как удалить границу на макете Как приложения scala для Android могут быть уменьшены в размере файла? Unity Android работает в фоновом режиме Android Fragment onCreateView с жесты Изображение uri не отображает изображения на ImageView на некоторых устройствах Android Указание оперативной памяти Android Market в манифесте Android: «Путь к проекту должен иметь только один сегмент» Обратная связь с RecyclerView и CardView Logcat не отображает мои логические вызовы Android pubnub chat с использованием синтаксического анализа, который дает неверную ошибку ключа аутентификации Сделать полосу прокрутки видимой в ионном контенте при использовании естественного прокрутки Дилемма точности компаса