Android: select a listener method with a passing argument

I am new to Android and Java. I want to make an onClick method that contains an int argument, so this is my attempt:

public void randomClick(final int randomIndex)
    {
      private OnClickListener top_listener = new OnClickListener() {
        public void onClick(View v) {
                    Intent top = new Intent(Main.this, ProjectDetail.class);
                    top.putExtra("spendino.de.ProjectDetail.position", randomIndex);
                    startActivity(top);
        }
        };
    }

but it still contains an error, can someone fix this for me?

Later I want to set the method in ImageView, it will look something like this: image1.randomClick(randomIndex1);

Many thanks. I am open to any decision.

+3
source share
1 answer

Currently, your implementation is OnClickListenernot limited to any kind, so it will not be launched.

You must create your own (maybe internal, but not anonymous) class that implements the interface OnClickListener:

public class RandomClickListener implements View.OnClickListener
{
    private final int randomIndex;

    public RandomClickListener(final int randomIndex)
    {
        this.randomIndex = randomIndex;
    }
    @Override
    public void onClick(View v)
    {
        Intent top = new Intent(Main.this, ProjectDetail.class);
        top.putExtra("spendino.de.ProjectDetail.position", randomIndex);
        startActivity(top);
    }
}
[...]
image1.setOnClickListener(new RandomClickListener(randomIndex));

, image1, ProjectDetail randomIndex, .

ProjectDetails ( - , ), OnClickListener .

+8

All Articles