set JSON records to spinner

Costas

Administrator
Staff member
JavaScript:
if (response == null || response.length() < 10) {
	progress.dismiss();
	return;
}

String resp = response;
JSONArray clients = null;

try {
	clients = new JSONArray(resp);

	if (clients == null || resp.length() < 10)
		return;

	JSONObject client_obj;
	SpinnerItem client = null;
	ArrayList<SpinnerItem> clients_LIST=new ArrayList<SpinnerItem>();

	//add dummy record	
	client = new SpinnerItem("0","");

	for (int i = 0; i < clients.length(); i++) {
		client_obj = (JSONObject) clients.get(i);

		client = new SpinnerItem(String.valueOf(client_obj.getInt("id")),client_obj.getString("client_name"));

		clients_LIST.add(client);
		
	}
	
	//add to spinner
	ArrayAdapter<SpinnerItem> dataAdapter = new ArrayAdapter<SpinnerItem>(clients_Map.this, android.R.layout.simple_spinner_item, clients_LIST);
	dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
	actionbar_spinner.setAdapter(dataAdapter);
} catch (JSONException e) {
	General.mes(Clients_Map.this, e.getMessage());
} finally {
	progress.dismiss();
}
.
.
.
.
//add to actionbar + create click event
@Override
public boolean onCreateOptionsMenu(Menu menu) {
	// setup on actiobar  -   http://stackoverflow.com/a/30639393/1320686
	getMenuInflater().inflate(R.menu.clients_map, menu);
	MenuItem item = menu.findItem(R.id.map_spinner);

	actionbar_spinner = (Spinner) MenuItemCompat.getActionView(item);
	
	get_clients();
	
	actionbar_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
			@Override
			public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
				if (pos==0)
					return;

				SpinnerItem client= (SpinnerItem)parent.getItemAtPosition(pos);
				Toast.makeText(Clients_Map.this, client.getTitle() + " with id " + client.getId(),Toast.LENGTH_SHORT).show();
			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
					
			}

	}); // (optional)


	return true;
}


//R.menu.clients_map.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" >

    <item
        android:id="@+id/map_spinner"
        android:actionViewClass="android.widget.Spinner"
        android:icon="@drawable/ic_launcher"
        android:orderInCategory="1"
        android:showAsAction="always"
        android:title="pipiscrew"/>

</menu>
 
Top