метод Android Spinner - PullRequest
       1

метод Android Spinner

0 голосов
/ 19 декабря 2011

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

public class HelloSpinnerActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        spinnertest = (Spinner) findViewById(R.id.Spinner01);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.Planets, android.R.layout.simple_spinner_item);

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinnertest.setAdapter(adapter);
        spinnertest.setOnItemSelectedListener(new MyOnItemSelectedListener());
    }
    public class MyOnItemSelectedListener implements OnItemSelectedListener {

        public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {
          Toast.makeText(parent.getContext(), "The planet is " +
              parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
        }

        public void onNothingSelected(AdapterView parent) {
          // Do nothing.
        }
    }
}

main.xml

<Spinner 
    android:id="@+id/Spinner01"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:prompt = "@string/planet_prompt"
    android:entries ="@array/Planets">
</Spinner>

strings.xml

<string name="app_name">Spinner</string>
 <string name="planet_prompt"> Select a planet </string>
<string-array name="Planets">
    <item>Mercury</item>
    <item>Venus</item>
    <item>Earth</item>
    <item>Mars</item>
    <item>Jupiter</item>
    <item>Saturn</item>
    <item>Uranus</item>
    <item>Neptune</item>
    <item>Pluto</item>
</string-array>

Ответы [ 2 ]

0 голосов
/ 19 декабря 2011

Я не знаю точно, что вы подразумеваете под «заголовком», но в учебном пособии в TextView в main.xml отображается приглашение, которое вы не показываете:

    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dip"
    android:text="@string/planet_prompt" />

Кроме того, поскольку вы инициализируете спиннер в XML, вам не нужно делать это в коде. Попробуйте это:

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
}
0 голосов
/ 19 декабря 2011

Не совсем уверен, что это возможно, решение поможет (у вас может быть конкретная причина попробовать это по-своему), но в прошлом я просто добавлял текст подсказки в верхнюю часть строкового массива Spinner (впозиция 0), а затем он отображается по умолчанию в виджете.Затем в 'onItemSelected' я игнорирую что-либо, если pos == 0.

...