I am trying to populate a spinner with data from mysql/rest service. I want to show only the id's of all employees in spinner.In the drop down box i see id with values and other columns as name: null, age: null etc. But after selecting one, i am able show id value alone by getting id value on my spinner adpater class. How to show id value on drop down box?
@Override
public void onSuccess(int statusCode, Header[] headers, JSONArray response) {
ArrayList<Employee> spinnerArray = new ArrayList<Employee>();
final SpinnerAdapter spinnerAdapter = new SpinnerAdapter(MainActivity.this, spinnerArray);
for (int i = 0; i < response.length(); i++)
{
try {
spinnerAdapter.add(new Employee(response.getJSONObject(i)));
}
catch (JSONException e) {
e.printStackTrace();
}
}
spinner.setAdapter(spinnerAdapter);
My adapter class
public class SpinnerAdapter extends ArrayAdapter<Employee> {
public SpinnerAdapter(Context context, ArrayList<Employee> employees) {
super(context, R.layout.spinner_id, employees);
}
private static class ViewHolder {
TextView employeeId;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Employee employee = getItem(position);
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.spinner_id, parent, false);
viewHolder.employeeId = (TextView) convertView.findViewById(R.id.value_employee_employeeId);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.employeeId.setText(employee.getEmployeeId());
return convertView;
}
You are doing a few things wrong. First of all you populate your array with the json response. If you want to present the ID maybe you should consider using an array of strings ("ID").
ArrayList<String> spinnerArray = new ArrayList<String>();
for (int i = 0; i < response.length(); i++) {
try {
spinnerArray.add(new Employee(response.getJSONObject(i)).getID());
}
catch (JSONException e) {
e.printStackTrace();
}
}
After that you initialize you adapter
final SpinnerAdapter spinnerAdapter = new SpinnerAdapter(MainActivity.this, spinnerArray);
And finally you set your adapter to the spinner
spinner.setAdapter(spinnerAdapter);