I'm working on an android app that produces image effects on an image. Below is the snapshot of my app:
As you can see, on the bottom - there is a horizontal scrollbar, and as the user touches one of the images on the horizontal scrollbar, the same effect is applied on the above image.
I've a total of 26 image effects and therefore 26 images in the horizontal scrollbar. Now, in my code, I've to find all those images and set their onClickListener()'s to a one particular listener.
I'm accomplishing the task in the following way:
sepiaGreenishImage = (ImageView) findViewById(R.id.sepiaGreenish);
embossImage = (ImageView) findViewById(R.id.emboss);
sharpenImage = (ImageView) findViewById(R.id.sharpen);
slightYellowishImage = (ImageView) findViewById(R.id.ligth_yellow);
slightBluishImage = (ImageView) findViewById(R.id.light_blue);
slightReddishImage = (ImageView) findViewById(R.id.light_red);
slightGreenishImage = (ImageView) findViewById(R.id.light_green);
negativeImage = (ImageView) findViewById(R.id.negative);
greyScaleImage = (ImageView) findViewById(R.id.greyscale);
tintSeventyImage = (ImageView) findViewById(R.id.tint_at_70);
tintThirtyImage = (ImageView) findViewById(R.id.tint_at_30);
snowImage = (ImageView) findViewById(R.id.snow);
darkImage = (ImageView) findViewById(R.id.darken);
noiseImage = (ImageView) findViewById(R.id.noise);
flipImage = (ImageView) findViewById(R.id.flip);
rotateImage = (ImageView) findViewById(R.id.rotate);
gaussianBlurImage = (ImageView) findViewById(R.id.blur);
reddishImage = (ImageView) findViewById(R.id.reddish);
bluishImage = (ImageView) findViewById(R.id.bluish);
greenishImage = (ImageView) findViewById(R.id.greenish);
blackFilterImage = (ImageView) findViewById(R.id.black_filter);
increasedSepiaImage = (ImageView) findViewById(R.id.increased_sepia);
spiaBluishImage = (ImageView) findViewById(R.id.sepia_bluish);
brightImage = (ImageView) findViewById(R.id.brighten);
mirrorImage = (ImageView) findViewById(R.id.mirror);
And then the following way, I'm setting onClickListener:
sepiaGreenishImage.setOnClickListener(this);
embossImage.setOnClickListener(this);
sharpenImage.setOnClickListener(this);
slightYellowishImage.setOnClickListener(this);
slightBluishImage.setOnClickListener(this);
slightReddishImage.setOnClickListener(this);
slightGreenishImage.setOnClickListener(this);
negativeImage.setOnClickListener(this);
greyScaleImage.setOnClickListener(this);
tintSeventyImage.setOnClickListener(this);
tintThirtyImage.setOnClickListener(this);
snowImage.setOnClickListener(this);
darkImage.setOnClickListener(this);
noiseImage.setOnClickListener(this);
flipImage.setOnClickListener(this);
rotateImage.setOnClickListener(this);
gaussianBlurImage.setOnClickListener(this);
reddishImage.setOnClickListener(this);
bluishImage.setOnClickListener(this);
greenishImage.setOnClickListener(this);
blackFilterImage.setOnClickListener(this);
increasedSepiaImage.setOnClickListener(this);
spiaBluishImage.setOnClickListener(this);
brightImage.setOnClickListener(this);
mirrorImage.setOnClickListener(this);
Now, my question is how can I apply any kind of refactoring? Because I'm repeating myself a lot. Any kind of foreach loop or similar thing might help me a lot!