Reputation: 1959
Sorry for repeated question.I have a searchable spinner.It will show some names.Defaultly it will select the first name into selection.I want it to be "Select your item".How to do that? I am getting these names from API.Iam new to android so forgive me if I asked any blunder.
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);
//My spinner xml
<com.toptoche.searchablespinnerlibrary.SearchableSpinner
android:id="@+id/employee_name_value"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
//My post Data
postData="{\"Title\":\""+title.getText().toString()
+(getIntent().hasExtra(Common.REQID)?"\",\"ID\":\""+getIntent().getExtras().getString(Common.REQID):"")//checking update or insert
+"\",\"ReqDateFormatted\":\""+date.getText().toString()
+"\",\"ReqForCompany\":\""+companyList.get(companySpinner.getSelectedItemPosition())[0]//Company code
+"\",\"RequisitionBy\":\""+employeeList.get(employeeSpinner.getSelectedItemPosition()==0? -1:employeeSpinner.getSelectedItemPosition()-1)
+"\",\"ReqStatus\":\"Open\"" +
",\"RequisitionDetailList\":" +
detailItemsJSON
+",\"userObj\":{\"UserName\":\""+userName+"\"}}";
Upvotes: 1
Views: 445
Reputation: 1758
The simplest way would be to add single item to first position with value "Select your item"
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);
And in onItemClickListener
, just do your work if selected position is not 0.
spinner.setOnItemClickListener((adapterView, view, position, l) -> {
if (position != 0) {
position -= 1;
//Do stuff like normal
}
});
If you are using getSelectedItemPositoion()
then
int position = spinner.getSelectedItemPosition() == 0 ?
-1 : spinner.getSelectedItemPosition() - 1;
Upvotes: 3