微调框默认选择为“选择项目”

时间:2018-07-09 07:37:12

标签: android

对不起,重复的问题。我有一个可搜索的微调器。它将显示一些名称。默认情况下,它将选择第一个名称。我希望它是“选择您的商品”。该怎么做?我是从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" />

1 个答案:

答案 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;