0
vp = (ViewPager) findViewById(R.id.a2viewpager);
    vp.setCurrentItem(0);

    vp.setOnClickListener(new ViewPager.OnClickListener() {
        @Override
        public void onClick(View v) {
            AlertDialog.Builder dlgAlert2 = new AlertDialog.Builder(lastcreated);
            dlgAlert2.setTitle("Void ?");
            dlgAlert2.setMessage(receiptPool.get(CurrentPage));

            dlgAlert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    //();
                    //startActivity(lastcreated.getIntent()); //REFRESH INTENT
                }
            });
            dlgAlert2.setNeutralButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    //();
                    //startActivity(lastcreated.getIntent()); //REFRESH INTENT
                }
            });
            dlgAlert2.setCancelable(true);
            dlgAlert2.create().show();
        }
    });

Before giving up on the onclick at viewPager, can anyone share a workable example on triggle the onClick? Or it is totally not support at viewPager?

I need to show an AlertDialog when click on the particular child under viewPager.

Below is my code at at setOnPageChangeListener (workable):

vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        public void onPageScrollStateChanged(int arg0) {

        }

        public void onPageScrolled(int arg0, float arg1, int arg2) {

        }

        public void onPageSelected(final int currentPage) {
            if (currentPage > 0) {

                CurrentPage = currentPage;
                final AlertDialog.Builder dlgAlert = new AlertDialog.Builder(lastcreated);

                dlgAlert.setTitle("Content");
                dlgAlert.setMessage(receiptPool.get(currentPage));

                dlgAlert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        //();
                        //startActivity(lastcreated.getIntent()); //REFRESH INTENT
                    }
                });
                if (!receiptPool.get(currentPage).contains("_(Canceled)")) {
                    dlgAlert.setNeutralButton("Cancel", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            dlgAlert.create().cancel();
                            final AlertDialog.Builder dlgAlert2 = new AlertDialog.Builder(lastcreated);
                            dlgAlert2.setTitle("Reprint?");
                            dlgAlert2.setMessage(receiptPool.get(CurrentPage));

                            dlgAlert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int whichButton) {
                                    cancelOrder(receiptPool.get(CurrentPage), dlgAlert2);
                                }
                            });
                            dlgAlert2.setNeutralButton("Cancel", new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int whichButton) {
                                    //();
                                    //startActivity(lastcreated.getIntent()); //REFRESH INTENT
                                }
                            });
                            dlgAlert2.setCancelable(true);
                            dlgAlert2.create().show();
                        }
                    });
                }

                dlgAlert.setCancelable(true);
                dlgAlert.create().show();
            }
        }
    });

how to make it workable at onClick?

Thanks.

Louis Lee
  • 281
  • 5
  • 15

1 Answers1

0

OnClickListener is not supported for viewpager. Please have a look at the accepted answer in Link.

ViewPager OnItemClickListener

Let me know if you need any clarifications.

Community
  • 1
  • 1
Ragesh Ramesh
  • 3,470
  • 2
  • 14
  • 20
  • Hi @Ragesh Rames, which approach is workable? the one from FoamyGuy or Volodymyr Yatsykiv ? I try the one from FoamyGuy , it show error "java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead". if from Volodymyr , is not working. Please give some idea how to implement either one. – Louis Lee May 01 '16 at 14:28
  • Try changing vp.setOnClickListener to vp.setOnTouchListener in your code and check. – Ragesh Ramesh May 01 '16 at 14:39
  • Alright, vp.setOnTouchListener is workable. Now, how to apply the stuff that i did in vp.setOnPageChangeListener, with ForamyGuy approach? or how do send the Position back to my activity and trigger some action? – Louis Lee May 01 '16 at 15:01
  • Yes ForamyGuy approach is best suited. – Ragesh Ramesh May 02 '16 at 04:35