0

i developing a application in which i am using View-Flipper. In this View-Flipper i have a image view which is flipping the images in auto mode.Now I want to perform click listener on each of flipping image in view flipper.So can and where can i set click listener event.

public class MainActivity extends Activity 
{
    @SuppressWarnings("unused")

    private ViewFlipper mViewFlipper;

    private GestureDetector mGestureDetector;

    int[] resources = {

            R.drawable.t1,
            R.drawable.t2,
            R.drawable.t3,
            R.drawable.t4,
            R.drawable.t5
    };

    @Override    
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
     // Get the ViewFlipper
        mViewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);

     //Automatically Start Flipping       
        mViewFlipper.setAutoStart(true);    
        mViewFlipper.setFlipInterval(5000);  // for 5 sec

     // Add all the images to the ViewFlipper
        for (int i = 0; i < resources.length; i++) 
        {
            ImageView imageView = new ImageView(this);
            imageView.setPadding(40, 80, 40, 80);
            imageView.setImageResource(resources[i]);
            mViewFlipper.addView(imageView);

     // Set in/out flipping animations
            mViewFlipper.setInAnimation(this, android.R.anim.fade_in);
            mViewFlipper.setOutAnimation(this, android.R.anim.fade_out);

            OnGestureListener customGestureDetector = new CustomGestureDetector();
            mGestureDetector = new GestureDetector(MainActivity.this, customGestureDetector);
        }}

        class CustomGestureDetector extends GestureDetector.SimpleOnGestureListener 
        {
            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) 
            {

                // Swipe left (next)
                if (e1.getX() > e2.getX()) 
                {
                    mViewFlipper.setInAnimation(MainActivity.this, R.anim.left_in);
                    mViewFlipper.setOutAnimation(MainActivity.this, R.anim.left_out);

                    mViewFlipper.showNext();
                }

                // Swipe right (previous)
                if (e1.getX() < e2.getX()) 
                {
                    mViewFlipper.setInAnimation(MainActivity.this, R.anim.right_in);
                    mViewFlipper.setOutAnimation(MainActivity.this, R.anim.right_out);

                    mViewFlipper.showPrevious();
                }

                return super.onFling(e1, e2, velocityX, velocityY);
            }
        }

        @Override
        public boolean onTouchEvent(MotionEvent event) {
            mGestureDetector.onTouchEvent(event);

            return super.onTouchEvent(event);
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }
Pavya
  • 6,015
  • 4
  • 29
  • 42

1 Answers1

1
for (int i = 0; i < resources.length; i++) {
      ImageView imageView = new ImageView(this);
      imageView.setPadding(40, 80, 40, 80);
      imageView.setTag(i);
      imageView.setImageResource(resources[i]);

                imageView.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    String id = v.getTag().toString();
                    // Toast id here
                }
            });
      mViewFlipper.addView(imageView);

     // Set in/out flipping animations
            mViewFlipper.setInAnimation(this, android.R.anim.fade_in);
            mViewFlipper.setOutAnimation(this, android.R.anim.fade_out);

        }
Pavya
  • 6,015
  • 4
  • 29
  • 42
  • one more question have regarding this. when i am using this code that i sent you. flipping is working fine by manually.but when m using in my actual application where it doesn't work manually. – Tarun sharma May 31 '16 at 13:04