Viewpager onClick不触发

时间:2016-05-01 13:32:45

标签: android onclick android-viewpager

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();
        }
    });

在放弃onPlick的viewPager之前,任何人都可以分享关于触发onClick的可行示例吗?或者它完全不支持viewPager?

点击viewPager下的特定孩子时,我需要显示一个AlertDialog。

以下是我在setOnPageChangeListener(可行)的代码:

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();
            }
        }
    });

如何让它在onClick上运行?

感谢。

1 个答案:

答案 0 :(得分:0)

viewpager不支持OnClickListener。请查看链接中接受的答案。

ViewPager OnItemClickListener

如果您需要任何澄清,请告诉我。