我正在做一个项目,我想在其中使用微调器。首先,我尝试在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
}
});
}
答案 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);
希望它将对您有帮助!