Anand
Anand

Reputation: 1959

Spinner default selection to "Select your item"

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

Answers (1)

Anton A.
Anton A.

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

Related Questions