2016-05-01 9 views
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(); 
     } 
    }); 

viewPagerでonclickをあきらめる前に、誰でもonClickをトリガするための実行可能な例を共有できますか?または、それはviewPagerで完全にサポートされていませんか?ViewPager onClick not triggle

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でそれを実行可能にするためにどのように?

ありがとうございました。

答えて

0

OnClickListenerは、ビューページではサポートされていません。受け入れられた答えをLinkで見てください。

ViewPager OnItemClickListener

何かの明確化が必要な場合は、私に教えてください。

+0

こんにちは@Ragesh Rames、アプローチは実行可能ですか? FoamyGuyまたはVolodymyr Yatsykivのもの?私はFoamyGuyから試してみると、エラー "java.lang.RuntimeException:AdapterViewのsetOnClickListenerを呼び出さないでください。代わりにsetOnItemClickListenerが必要になるでしょう"と表示されます。 Volodymyrからの場合は動作していません。どちらかを実装する方法を考えてください。 –

+0

コード内でvp.setOnClickListenerをvp.setOnTouchListenerに変更してチェックしてください。 –

+0

いいえ、vp.setOnTouchListenerは実行可能です。さて、私はvp.setOnPageChangeListenerで行ったことをForamyGuyアプローチでどのように適用するのですか?ポジションを自分のアクティビティに戻して何らかのアクションを引き起こすにはどうすればよいですか? –