title: Drawables next to buttons?
body: <p>Ive been working on a simple app that has a feature where you can test your knowledge by answering multiple choice questions. After an answer is selected(by the radio button), i want to show either a check mark if the answer is correct, or an "X" if the answer is incorrect, to the right of the selected answer. For some reason, my code works perfectly for the first try, and then doesnt change anything when selecting other answers.</p>
  
  <p>heres the code (its part of an adapter - child view)</p>
  
  <pre><code> /**
   * Creates the View of group(parent) in the ExpandableListView
   *
   * @return the View of each parent in the List
   */
  @Override
  public View getGroupView(final int groupPosition, final boolean isExpanded, View convertView, final ViewGroup parent) {
      LayoutInflater inflater = LayoutInflater.from(context);
      View parentView = inflater.inflate(R.layout.custom_list_parent, parent, false);
      Question myQuestion = myList.get(groupPosition);
      //setting the text of each parent
      TextView singleTitle = (TextView) parentView.findViewById(R.id.title);
      singleTitle.setText(myQuestion.getQuestion());
      //handling the indicator
      ImageView indicator = (ImageView) parentView.findViewById(R.id.indicator);
      //if the list is expanded use arrow up, if not then use arrow down
      int imageResourceId = isExpanded ? android.R.drawable.arrow_up_float : android.R.drawable.arrow_down_float;
      //initial arrow
      indicator.setImageResource(imageResourceId);
      indicator.setOnClickListener(new View.OnClickListener() {
  
          @Override
          public void onClick(View v) {
              /**
               * Will expand and collapse groups depending on previous state
               * @param v the View from which the ClickListener was triggered
               */
              if (isExpanded) ((ExpandableListView) parent).collapseGroup(groupPosition);
              else ((ExpandableListView) parent).expandGroup(groupPosition, true);
  
          }
      });
  
      return parentView;
  
  
  }
  
  /**
   * Creates the View of child in the ExpandableListView
   * @return the View of each child in the List
   */
  @Override
  public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
      LayoutInflater inflater = LayoutInflater.from(context);
      final View childView = inflater.inflate(R.layout.custom_list_child_questions, parent, false);
      handleRadioButtons(childView,groupPosition);
      return childView;
  }
  
  /**
   * Checks if the child can be selected/pressed as well
   *
   * @return whether the child is selectable or not
   */
  @Override
  public boolean isChildSelectable(int groupPosition, int childPosition) {
      return false;
  }
  
  
  public void handleRadioButtons(View childView, int groupPosition) {
      final Question myQuestion = myList.get(groupPosition);
      RadioGroup group = (RadioGroup) childView.findViewById(R.id.buttonGroup);
      initializeButtons(childView);
      setButtonText(myQuestion);
      //if one of the buttons is pressed
      group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
          /**
           * Will expand and collapse groups depending on previous state
           * @param group the button group this ActionListener will operate on
           * @param checkedId the ID of the individual button that was pressed
           */
          @Override
          public void onCheckedChanged(RadioGroup group, int checkedId) {
              //get the index of the correct answer
              int indexAnswer = Integer.parseInt(myQuestion.getAnswer()) - 1;
              for (int i = 0; i &lt; possibleAnswers.length; i++) {
                  //if the button at position i was pressed
                  if (checkedId == possibleAnswers[i].getId()) {
                      //if its the correct answer
                      if (i == indexAnswer)
                          possibleAnswers[i].setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.checkmark, 0);
                      else
                          possibleAnswers[i].setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.wrong, 0);
  
                  } else {
                      possibleAnswers[i].setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
                  }
              }
          }
      });
  
  }
  
  /**
   * Sets the text of each radio button as a possible answer
   * @param myQuestion the Question corresponding to the possible answers
   */
  public void setButtonText(Question myQuestion) {
      for (int i = 0; i &lt; possibleAnswers.length; i++) {
          possibleAnswers[i].setText(myQuestion.getPossibleAnswers()[i]);
      }
  }
  
  /**
   * Initializes the RadioButton array of possible answers
   * @param childView the View in which the radio buttons are defined
   */
  public void initializeButtons(View childView) {
      //array of radioButtons, each button will correspond to a possible answer
      possibleAnswers[0] = (RadioButton) childView.findViewById(R.id.answer1);
      possibleAnswers[1] = (RadioButton) childView.findViewById(R.id.answer2);
      possibleAnswers[2] = (RadioButton) childView.findViewById(R.id.answer3);
      possibleAnswers[3] = (RadioButton) childView.findViewById(R.id.answer4);
  }
  </code></pre>
  
  <p>}</p>
  
  <p>and the xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  
  &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical"
                android:background="#6495ED"
                android:layout_width="match_parent"
                android:layout_height="135dp"&gt;
  </code></pre>
  
  <p></p>
  
  <pre><code>    &lt;RadioGroup
              android:id="@+id/buttonGroup"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"&gt;
  
              &lt;RadioButton
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:text="choice1"
                      android:drawablePadding="6dp"
                      android:textColor="#ffffff"
                      android:textSize="12dp"
                      android:id="@+id/answer1"/&gt;
  
  
              &lt;RadioButton
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:text="choice 2"
                      android:drawablePadding="6dp"
                      android:textColor="#ffffff"
                      android:textSize="12dp"
                      android:id="@+id/answer2"/&gt;
  
  
              &lt;RadioButton
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:text="choice 3"
                      android:drawablePadding="6dp"
                      android:textColor="#ffffff"
                      android:textSize="12dp"
                      android:id="@+id/answer3"/&gt;
  
              &lt;RadioButton
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:text="choice 4"
                      android:drawablePadding="6dp"
                      android:textColor="#ffffff"
                      android:textSize="12dp"
                      android:id="@+id/answer4"
              /&gt;
  
      &lt;/RadioGroup&gt;
  </code></pre>
  
  <p>
      </p>
  
  <p>that's how the problem looks on the screen:
  <a href="http://i.stack.imgur.com/D5ZEt.jpg" rel="nofollow">problem</a></p>
  
  <p>Any ideas? Please help!</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>here's what im doing now, trying to play with visibility:</p>
  
  <pre><code>public void handleRadioButtons(final View childView, int groupPosition) {
      final Question myQuestion = myList.get(groupPosition);
      RadioGroup group = (RadioGroup) childView.findViewById(R.id.buttonGroup);
      initializeButtons(childView, myQuestion);
      setButtonText(myQuestion);
      //if one of the buttons is pressed
      group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
          /**
           * Will expand and collapse groups depending on previous state
           *
           * @param group     the button group this ActionListener will operate on
           * @param checkedId the ID of the individual button that was pressed
           */
          @Override
          public void onCheckedChanged(RadioGroup group, int checkedId) {
              //get the index of the correct answer
              for (int i = 0; i &lt; possibleAnswers.length; i++) {
                  //if the button at position i was pressed
                  if (checkedId == possibleAnswers[i].getId()) {
                      possibleAnswers[i].getCompoundDrawables()[2].setVisible(true,true);
                  }
              }
          }
      });
  }
  
  
  
   /**
   * Initializes the RadioButton array of possible answers
   * @param childView the View in which the radio buttons are defined
   */
  public void initializeButtons(View childView,Question myQuestion) {
      //array of radioButtons, each button will correspond to a possible answer
      possibleAnswers[0] = (RadioButton) childView.findViewById(R.id.answer1);
      possibleAnswers[1] = (RadioButton) childView.findViewById(R.id.answer2);
      possibleAnswers[2] = (RadioButton) childView.findViewById(R.id.answer3);
      possibleAnswers[3] = (RadioButton) childView.findViewById(R.id.answer4);
      for(int i=0;i&lt;possibleAnswers.length;i++){
          if(Integer.parseInt(myQuestion.getAnswer()) - 1 == i){
              possibleAnswers[i].setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.checkmark, 0);
              possibleAnswers[i].getCompoundDrawables()[2].setVisible(false,true);
          }
          else{
              possibleAnswers[i].setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.wrong, 0);
              possibleAnswers[i].getCompoundDrawables()[2].setVisible(false,true);
  
          }
  
      }
  }
  </code></pre>