То, что я пытаюсь сделать, это использовать оператор if, чтобы определить, какой элемент в моем счетчике выбран, а затем оттуда разрешить выбор двух разных переключателей и в зависимости от того, какой из них делает что-то другое. Вывод для TextView будет меняться в зависимости от того, какой элемент Spinner и какой переключатель выбран. У меня нет проблем с переключателями, и вывод будет зависеть от того, какой из них выбран, но счетчик ничего не делает. Я могу выбрать любой элемент, и он будет иметь тот же вывод, и проигнорировать первое утверждение if относительно счетчика и просто использовать второе. Я подумал, что это сработало, и перешел к остальной части моего приложения, затем вернулся и протестировал его, и теперь я вернулся к квадрату один. Я не хочу использовать OnItemSelectedListener, но я понимаю, что я, вероятно, пытаюсь неправильно сравнить элемент со счетчиком. Для OnItemSelectedListener я бы использовал:
if (parent.getItemAtPosition(pos).toString().equals("1-17"))
но я пытался сделать это внутри TextChangedListener и думал, что это сработает, но я нахожу спиннеры действительно запутанными.
Ниже приведен пример, который похож на тот, что у меня есть, только я не дома, поэтому я постарался максимально воссоздать его. Я оставил исключение формата числа, которое у меня есть вне кода, потому что я не помню, как я это сделал, но мое приложение принудительно закрывалось, если число было введено, а затем удалено, поэтому я не думаю, что это необходимо для этого.
EditText et1;
Spinner age;
RadioGroup radio;
RadioButton male;
RadioButton female;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calc);
number = (EditText) findViewById(R.id.number);
tv1 = (TextView) findViewById(R.id.tv1);
male = (RadioButton) findViewById(R.id.male);
female = (RadioButton) findViewById(R.id.female);
radio = (RadioGroup) findViewById(R.id.radio);
age = (Spinner) findViewById(R.id.ageselect);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.age_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
age.setAdapter(adapter);
textEdit.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable editable)
{
int number = Integer.parseInt(number.getText().toString());
if (age.getItemAtPosition(0).toString().equals("1-17")){
if (male.isChecked()){
if (number == 40){
tv1.setText("60"); }}
if (female.isChecked()){
if (number == 40){
tv1.setText("50"); }}}
if (age.getItemAtPosition(1).toString().equals("18-20")){
if (male.isChecked()){
if (number == 40){
tv1.setText("65"); }}
if (female.isChecked()){
if (number == 40){
tv1.setText("55"); }}}
}
@Override
public void beforeTextChanged(CharSequence text, int start, int count, int after)
{
// Do Stuff
}
@Override
public void onTextChanged(CharSequence arg0, int start, int before, int count)
{
// Do Stuff
}
});
Я был бы признателен за любые рекомендации или ссылки, где я могу найти эту информацию. Я много искал, но безуспешно, и этот спиннер сводит меня с ума. Я готов просто отказаться от него и использовать больше переключателей, но я не хочу загромождать свое приложение. Спасибо, парни!