对不起,重复的问题。我有一个可搜索的微调器。它将显示一些名称。默认情况下,它将选择第一个名称。我希望它是“选择您的商品”。该怎么做?我是从API获取这些名称的。我是android的新手,所以请问我有什么失误。
Single.error
//我的微调器XML
ArrayList<String> employeeNames = new ArrayList<String>();
for (int i=0;i<common.dataArrayList.size();i++){
String[] data=new String[3];
data[0]=common.dataArrayList.get(i)[0];
data[1]=common.dataArrayList.get(i)[1];
data[2]=common.dataArrayList.get(i)[2];
employeeList.add(data);
}
for(int i=0;i<employeeList.size();i++){
employeeNames.add(employeeList.get(i)[1]+" - "+employeeList.get(i)[2]);
}
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(InsertRequisition.this, R.layout.item_spinner_black, employeeNames);
dataAdapter.setDropDownViewResource(R.layout.item_spinner);
employeeSpinner =(Spinner)findViewById(R.id.employee_name_value);
employeeSpinner.setAdapter(dataAdapter);
//我的帖子数据
<com.toptoche.searchablespinnerlibrary.SearchableSpinner
android:id="@+id/employee_name_value"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
答案 0 :(得分:2)
最简单的方法是将单个项目添加到第一个位置,其值为“选择您的项目”
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(InsertRequisition.this, R.layout.item_spinner_black, employeeNames);
//Add item to first position
dataAdapter.insert(getString(R.string.select_item), 0);
employeeSpinner.setAdapter(dataAdapter);
在onItemClickListener
中,如果选择的位置不为0,就干活。
spinner.setOnItemClickListener((adapterView, view, position, l) -> {
if (position != 0) {
position -= 1;
//Do stuff like normal
}
});
如果您使用的是getSelectedItemPositoion()
,那么
int position = spinner.getSelectedItemPosition() == 0 ?
-1 : spinner.getSelectedItemPosition() - 1;