Я хочу использовать оператор if с элементом счетчика, но без OnItemSelectedListener.

То, что я пытаюсь сделать, это использовать оператор 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

            }

    });

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


person Daniel    schedule 05.11.2010    source источник
comment
Думаю, я нашел ответ здесь: stackoverflow.com/questions/2129903/, который содержит: Object item = spinner.getSelectedItem(); длинный идентификатор = spinner.getSelectedItemId(); int position = getSelectedItemPosition(); Просмотр selectedView = getSelectedView(); Я постараюсь выяснить, как использовать один из них, когда я вернусь домой. Не знаю, как я проглядел эту тему.   -  person Daniel    schedule 05.11.2010


Ответы (1)


Извините за повторный вопрос. Я использовал следующее:

Object item = age.getSelectedItem();
if (item.equals("1-17")){
person Daniel    schedule 05.11.2010