Мой Android Spinner работает без ArrayAdapter ... почему? - PullRequest
0 голосов
/ 21 июля 2011

Я попаду на небеса или в ад?Поскольку мне нужно было заполнить 5 счетчиков, я попробовал очень компактный код.Я не понимал, почему я должен использовать ArrayAdapter, поэтому я просто удалил его, несмотря на то, что все учебники используют его.Я был удивлен, как это сработало.Код показывает только один счетчик:

 Spinner s2_height = (Spinner)findViewById(R.id.s2_height);
    s2_height.setOnItemSelectedListener(new OnItemSelectedListener() {  //Register a callback to be invoked when an item in this AdapterView has been selected.
        public void onItemSelected(AdapterView<?> arg0, View arg1,  //Callback method to be invoked when an item in this view has been selected
                int arg2, long arg3) {
            myCalc();}
        public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

        }
});

Это место в моем .java, где я пропустил раздел ArrayAdapter, обычно в учебниках, рекомендуемых как:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.Height_array_id, android.R.layout.simple_spinner_item);
   adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
   s2_height.setAdapter(adapter);

И что удивительно, это сработало, я поместил метод myCalc, который правильно отображает ItemPosition на всех 5 счетчиках.Теперь я боюсь, что у меня будет какой-то недостаток в другом месте, может быть при изменении цвета или высоты текста.У кого-нибудь такая же проблема?

1 Ответ

6 голосов
/ 21 июля 2011

Я попаду на небеса или в ад?

Это будет вопрос для вашего священника, министра, раввина и т. Д. Это не относится к StackOverflow.

Я не понял, почему я должен использовать ArrayAdapter, поэтому я просто уронил его

Вам не нужно использовать ArrayAdapter, но у вас естьиспользовать некоторую форму SpinnerAdapter для заполнения Spinner через setAdapter().В противном случае Spinner будет пустым.Если ваш Spinner не пустой, это означает, что вы где-то назвали setAdapter().

...