为什么即使我遵循了一些教程,我的微调器也不会显示任何内容?

时间:2019-06-05 04:28:08

标签: android android-spinner

我正在做一个项目,我想在其中使用微调器。首先,我尝试在youtube上尝试一些教程,并成功编译了我的代码,但是问题是我的微调框没有显示任何文本。然后,我尝试另一个教程,并从任何资源中找到解决我问题的方法。但是,它仍然无法正常工作。 然后,我尝试制作一个仅包含带有相同代码的微调器的新项目,它的工作原理非常完美。我不知道为什么会这样。 我的项目与新项目之间的区别在于,我的项目具有导航抽屉。我不知道,但这也许是相关的。 对不起,我的英语不好

这是我的微调器xml代码

<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 :(得分:0)

您忘记在适配器中添加列表,将代码替换为下面的

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);

希望它将对您有帮助!