title: I have to click the button twice for it to work
body: <p>So I have a button in my app and an edittext. When I click the button and write something in the edittext, a textview changes. It all works as it should except for one thing. I have to click on the button twice to make it work (only the first time I open activity). The very first time after I open activity I press the button and nothing happens, after that it works as it should.</p>
  
  <p>I already did my research on this and as far as I know the thing that is causing trouble is focus, but I tried a few things and nothing worked.</p>
  
  <p>Button XML code:</p>
  
  <pre><code>&lt;Button
      android:id="@+id/submitButton"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignBaseline="@+id/editText1"
      android:layout_alignBottom="@+id/editText1"
      android:layout_alignLeft="@+id/checkBox25"
      android:text="@string/addMaterial"
      android:onClick="submitQuantityButton" &gt;
  &lt;/Button&gt;
  </code></pre>
  
  <p>Edittext XML code:</p>
  
  <pre><code>&lt;EditText
      android:id="@+id/editText1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentLeft="true"
      android:layout_below="@+id/spinner1"
      android:ems="3"
      android:inputType="number"
      android:maxLength="3" &gt;
  &lt;/EditText&gt;
  </code></pre>
  
  <p>I tried adding android:focusableInTouchMode="false" to button XML, I also tried adding requestFocus to button XML and it still doesn't work. I also removed the requestFocus from edittext and it doesn't work. I'm running out of ideas what else to try.</p>
  
  <p>onClick method:</p>
  
  <pre><code>public void submitQuantityButton (View v){
      Button submitButton = (Button)findViewById(R.id.submitButton);
      final Spinner sItems = (Spinner)findViewById(R.id.spinner1);
      final Context context = this;
      final CheckBox cb4 = (CheckBox) findViewById(R.id.checkBox4);
      final CheckBox cb5 = (CheckBox) findViewById(R.id.checkBox5);
      final CheckBox cb33 = (CheckBox) findViewById(R.id.checkBox33);
      final CheckBox cb30 = (CheckBox) findViewById(R.id.checkBox30);
      final CheckBox cb6 = (CheckBox) findViewById(R.id.checkBox6);
      final CheckBox cb7 = (CheckBox) findViewById(R.id.checkBox7);
      final CheckBox cb9 = (CheckBox) findViewById(R.id.checkBox9);
      final CheckBox cb10 = (CheckBox) findViewById(R.id.checkBox10);
      final CheckBox cb11 = (CheckBox) findViewById(R.id.checkBox11);
      final CheckBox cb12 = (CheckBox) findViewById(R.id.checkBox12);
  
      //
      final AlertDialog.Builder emptyETextErrorBuilder = new AlertDialog.Builder(context);
      emptyETextErrorBuilder.setTitle("Warning");
      emptyETextErrorBuilder.setMessage("Please enter a value before pressing this button");
      emptyETextErrorBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
  
          @Override
          public void onClick(DialogInterface dialog, int which) {
              dialog.cancel();
          }
      });
  
      submitButton.setOnClickListener(new View.OnClickListener() {
  
          @Override
          public void onClick(View v) {
              final int position = sItems.getSelectedItemPosition();
              EditText quantityEditText = (EditText)findViewById(R.id.editText1);
  
              switch (position){
              case 0:
                  AlertDialog.Builder spinnerErrorBuilder = new AlertDialog.Builder(context);
                  spinnerErrorBuilder.setTitle("Warning");
                  spinnerErrorBuilder.setMessage("Please choose an item from the list above and then enter a certain value");
                  spinnerErrorBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
  
                      @Override
                      public void onClick(DialogInterface dialog, int id) {
                          dialog.cancel();
                      }
                  });
                  AlertDialog spinnerError = spinnerErrorBuilder.create();
                  spinnerError.show();
                  break;
              case 1:
                  String item1 = quantityEditText.getText().toString();
                  if (item1.matches(""))
                  {
                      AlertDialog emptyETextError = emptyETextErrorBuilder.create();
                      emptyETextError.show();
                  }
                  else
                  {
                      cb4.setText("Elaborate Totem (" + item1 + "/250)");
                  }
                  break;
              case 2:
                  String item2 = quantityEditText.getText().toString();
                  if (item2.matches(""))
                  {
                      AlertDialog emptyETextError = emptyETextErrorBuilder.create();
                      emptyETextError.show();
                  }
                  else
                  {
                      cb5.setText("Pile of Crystalline Dust (" + item2 + "/250)");
                  }
                  break;
              case 3:
                  String item3 = quantityEditText.getText().toString();
                  if (item3.matches(""))
                  {
                      AlertDialog emptyETextError = emptyETextErrorBuilder.create();
                      emptyETextError.show();
                  }
                  else
                  {
                      cb33.setText("Pile of Crystalline Dust (" + item3 + "/250)");
                  }
                  break;
              case 4:
                  String item4 = quantityEditText.getText().toString();
                  if (item4.matches(""))
                  {
                      AlertDialog emptyETextError = emptyETextErrorBuilder.create();
                      emptyETextError.show();
                  }
                  else
                  {
                      cb30.setText("Pile of Crystalline Dust (" + item4 + "/250)");
                  }
                  break;
              case 5:
                  String item5 = quantityEditText.getText().toString();
                  if (item5.matches(""))
                  {
                      AlertDialog emptyETextError = emptyETextErrorBuilder.create();
                      emptyETextError.show();
                  }
                  else
                  {
                      cb6.setText("Powerful Venom Sac (" + item5 + "/250)");
                  }
                  break;
              case 6:
                  String item6 = quantityEditText.getText().toString();
                  if (item6.matches(""))
                  {
                      AlertDialog emptyETextError = emptyETextErrorBuilder.create();
                      emptyETextError.show();
                  }
                  else
                  {
                      cb7.setText("Vial of Powerful Blood (" + item6 + "/250)");
                  }
                  break;
              case 7:
                  String item7 = quantityEditText.getText().toString();
                  if (item7.matches(""))
                  {
                      AlertDialog emptyETextError = emptyETextErrorBuilder.create();
                      emptyETextError.show();
                  }
                  else
                  {
                      cb9.setText("Ancient Bone (" + item7 + "/250)");
                  }
                  break;
              case 8:
                  String item8 = quantityEditText.getText().toString();
                  if (item8.matches(""))
                  {
                      AlertDialog emptyETextError = emptyETextErrorBuilder.create();
                      emptyETextError.show();
                  }
                  else
                  {
                      cb10.setText("Armored Scale (" + item8 + "/250)");
                  }
                  break;
              case 9:
                  String item9 = quantityEditText.getText().toString();
                  if (item9.matches(""))
                  {
                      AlertDialog emptyETextError = emptyETextErrorBuilder.create();
                      emptyETextError.show();
                  }
                  else
                  {
                      cb11.setText("Vicious Claw (" + item9 + "/250)");
                  }
                  break;
              case 10:
                  String item10 = quantityEditText.getText().toString();
                  if (item10.matches(""))
                  {
                      AlertDialog emptyETextError = emptyETextErrorBuilder.create();
                      emptyETextError.show();
                  }
                  else
                  {
                      cb12.setText("Vicious Fang (" + item10 + "/250)");
                  }
                  break;
              }
          }
      });
  }
  </code></pre>