androidclickviewlistenerssetting

Adding different onClickListener to dynamically creataed Views


I am creating an android application, where I am creating 2 imageViews and 2 buttons dynamically , and I want to assign onClickListeners to them and I want to perform different functions for each of them. I have searched all over the internet but there is not information on how to make the views do their own functions on clicking.

So far I have come up with this :

    /* Setting the ids */
    leftImageView.setId(View.generateViewId());
    rightImageView.setId(View.generateViewId());
    sendButton.setId(View.generateViewId());
    setButton.setId(View.generateViewId());

    leftImageView.setOnClickListener(this);
    rightImageView.setOnClickListener(this);
    sendButton.setOnClickListener(this);
    setButton.setOnClickListener(this);



@Override
public void onClick(View v) {
    switch (v.getId()){
        case leftImageView.getId() : 
    }

Here is a snap of the error in this code :

enter image description here


Solution

  • Use id constant -

    @Override public void onClick(View v) {
        switch (v.getId()){
            case R.id.image_view: 
        }
    

    or

    Use if-else statement instead of switch. it will work fine.