Почему мой счетчик ничего не отображает, хотя я следовал некоторому руководству? - PullRequest
0 голосов
/ 05 июня 2019

Я работаю над проектом и хочу использовать в нем спиннер.Во-первых, я пытаюсь скомпилировать несколько руководств по YouTube и мой код, но проблема в том, что мой счетчик не показывает никакого текста.Затем я пробую другой учебник и найду решение для моей проблемы с любого ресурса.Но это все еще не работает.Затем я пытаюсь сделать новый проект, который содержит только спиннер с тем же кодом, он работает отлично.Я не знаю, почему это произошло.Разница между моим проектом и новым проектом заключается в том, что у моего проекта есть панель навигации.Я не знаю, но, возможно, это связаноизвините за мой плохой английский

это мой xml-код для spinner

<Spinner
        android:id="@+id/spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"/>

и это для моего java

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_home);

        Spinner spinner = (Spinner) findViewById(R.id.spinner);

        List<String> categories = new ArrayList<>();
        categories.add(0, "Choose Station");
        categories.add("Station A (Asrama Mahanaim)");
        categories.add("Station B (Asrama Mamre)");
        categories.add("Station C (Asrama Nazareth)");
        categories.add("Station D (Kantin Lama)");
        categories.add("Station E (Studio)");
        categories.add("Station F (GD 8)");
        categories.add("Station G (GD 9)");

        ArrayAdapter<String> adapter;
        adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                if (adapterView.getItemAtPosition(i).equals("Choose Station")) {
                    //do nothing
                } else {
                    String item = adapterView.getItemAtPosition(i).toString();

                    Toast.makeText(adapterView.getContext(), "Selected : " + item, Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
                //TODO auto-generated method stub
            }
        });
    }

это вывод при компиляции enter image description here

1 Ответ

0 голосов
/ 05 июня 2019

Вы забыли добавить список в адаптере, замените код на ниже

ArrayAdapter spinner= new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
spinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinner);

Надеюсь, это поможет вам!

...