Search code examples
javaandroidstringstringbuilder

How to build a string from items that are clicked?


I'm trying to make a one String from views that are clicked and store them in database. I have created a list of different views and I want to save only the clicked ones.

final StringBuilder sb = new StringBuilder();
final String prefix = " ";


    holder.cardView.setOnClickListener(new View.OnClickListener() {
        boolean isClicked = false;


        @Override
        public void onClick(View view) {

            if (isClicked) {
                isClicked = false;

            } else {
                String ingredient = holder.ingredientTextView.getText().toString();
                sb.append(ingredient);
                sb.append(prefix);
                isClicked = true;
            }
        }
    });
    allIngredients = sb.toString();

Solution

    1. Declare a StringBuilder

      private StringBuilder viewClickingOrder = new StringBuilder();

    2. Attach a onClickListener to each view

      view.setOnClickListener(this);

    3. Create a common listener

      @Override public void onClick(View view) { viewClickingOrder.append(view.getClass().getName());
      }

      If you want or have different click listener behavior just add this line

      viewClickingOrder.append(view.getClass().getName());

      to each listener