Невозможно заполнить строку с выбором флажка - PullRequest
0 голосов
/ 12 мая 2018

У меня простой вопрос, который я не могу понять. Я надеюсь, что кто-то может помочь, но после изучения флажков, я все еще не могу решить эту проблему.

Вот мой код:

CheckBox chkbxUpgrade;
TextView txtViewResult;
Double cost;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    txtViewResult = (TextView)findViewById(R.id.textViewResult);
    chkbxUpgrade = (CheckBox)findViewById(R.id.checkBoxUpgrade);

    onCheckboxClicked(cost);
}

public double onCheckboxClicked(Double cost) {
    if (chkbxUpgrade.isChecked()) {
        cost = 6.99;
    }
    else {
        cost = 4.99;
    }
    return cost;
}

public void onClickOrder(View view) {
    Toast.makeText(this, "Order Successful!", Toast.LENGTH_LONG).show();
    txtViewResult.setText("Price: $" + cost);
}

Не должно ли мое текстовое представление заполняться 4,99, если флажок не установлен, или 6,99, если он установлен? Я не могу понять, почему это не заселение ...

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

xml может выглядеть следующим образом:

<CheckBox android:id="@+id/your check box id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="text"
        android:onClick="onCheckboxClicked"/>

Затем измените свой метод на:

public void onCheckboxClicked(View view) {
    // Is the view now checked?
    boolean checked = ((CheckBox) view).isChecked();

   if (checked)
   { 
       cost = 6.99;
   }
   else
   {
      cost =4.99;
   }

}
0 голосов
/ 12 мая 2018

Чтобы увидеть, если JCheckBox отмечен галочкой, вы должны использовать .isSelected () , а не .isChecked () . Не существует .isChecked () с JCheckBox:

if (chkbxUpgrade.isSelected()) {
    cost = 6.99;
}
else {
    cost = 4.99;
}

если не используется метод из другого класса. Кроме того, поскольку ваша переменная cost была объявлена ​​как поле класса, нет необходимости передавать ее как параметр или возвращать ее из метода, поскольку переменная является классом global. Ваш onCheckboxClicked () метод будет работать так же хорошо с:

public void onCheckboxClicked() {
    if (chkbxUpgrade.isSelected()) {
        cost = 6.99;
    }
    else {
        cost = 4.99;
    }
}

Если не используется метод onCheckboxClicked () из другого класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...