How Can Get Selected Item Id Value In Dynamic Spinner In Android
I create dynamic spinner in android which show json data from url I set data properly in spinner but i get id of selected item How can i do this My code for set spinner value is
Solution 1:
Create a MyModel
like this
publicclassMyModel
{
String cartype_id,type,rate_type,rate_in;
publicStringgetCartype_id() {
return cartype_id;
}
publicvoidsetCartype_id(String cartype_id) {
this.cartype_id = cartype_id;
}
publicStringgetType() {
returntype;
}
publicvoidsetType(Stringtype) {
this.type = type;
}
publicStringgetRate_type() {
return rate_type;
}
publicvoidsetRate_type(String rate_type) {
this.rate_type = rate_type;
}
publicStringgetRate_in() {
return rate_in;
}
publicvoidsetRate_in(String rate_in) {
this.rate_in = rate_in;
}
}
Than create a
ArrayList
of your Model Class
ArrayList<MyModel> arrayList = new ArrayList<>();
Parse your json like this
try {
JSONArray jsonArray =
response.getJSONArray("car_rate");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
MyModel myModel= newMyModel();
myModel.setCartype_id(obj.getString("cartype_id"));
myModel.setType(obj.getString("type"));
myModel.setRate_in(obj.getString("rate_type"));
myModel.setRate_in(obj.getString("rate_in"));
arrayList.add(myModel);
}
} catch (JSONException e) {
e.printStackTrace();
}
Now create a custom adapter like this
classSpinnerAdapterextendsArrayAdapter<MyModel> {
private ArrayList<MyModel> myarrayList;
SpinnerAdapter(Context context, int textViewResourceId, ArrayList<MyModel> modelArrayList) {
super(context, textViewResourceId, modelArrayList);
this.myarrayList = modelArrayList;
}
@Overridepublic View getDropDownView(int position, View convertView, @NonNull ViewGroup parent) {
return getCustomView(position, parent);
}
@Nullable@Overridepublic MyModel getItem(int position) {
return myarrayList.get(position);
}
@OverridepublicintgetCount() {
intcount= myarrayList.size();
//return count > 0 ? count - 1 : count;return count;
}
@NonNull@Overridepublic View getView(int position, View convertView, @NonNull ViewGroup parent) {
return getCustomView(position, parent);
}
private View getCustomView(int position, ViewGroup parent) {
MyModelmodel= getItem(position);
ViewspinnerRow= LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_spinner_dropdown_item, parent, false);
TextViewlabel= spinnerRow.findViewById(android.R.id.text1);
label.setText(String.format("%s", model != null ? model.getType() : ""));
return spinnerRow;
}
}
Now set adapter in your spinner like this
SpinnerAdapteradapter=newSpinnerAdapter(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, arrayList);
mySpinner.setAdapter(adapter);
Now get selected item form your spinner like this
mySpinner.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener() {
@OverridepublicvoidonItemSelected(AdapterView<?> parent, View view, int position, long id) {
MyModel myModel=(MyModel) parent.getSelectedItem();
Log.e("DATA",myModel.getCartype_id());
Log.e("DATA",myModel.getRate_in());
Log.e("DATA",myModel.getRate_type());
Log.e("DATA",myModel.getType());
}
@OverridepublicvoidonNothingSelected(AdapterView<?> parent) {
}
});
SAMPLE CODE
protectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
JSONArray jsonArray =
response.getJSONArray("car_rate");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
MyModel myModel= newMyModel();
myModel.setCartype_id(obj.getString("cartype_id"));
myModel.setType(obj.getString("type"));
myModel.setRate_in(obj.getString("rate_type"));
myModel.setRate_in(obj.getString("rate_in"));
arrayList.add(myModel);
}
SpinnerAdapter adapter = newSpinnerAdapter(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, arrayList);
mySpinner.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
mySpinner.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener() {
@OverridepublicvoidonItemSelected(AdapterView<?> parent, View view, int position, long id) {
MyModel myModel=(MyModel) parent.getSelectedItem();
Log.e("DATA",myModel.getCartype_id());
Log.e("DATA",myModel.getRate_in());
Log.e("DATA",myModel.getRate_type());
Log.e("DATA",myModel.getType());
}
@OverridepublicvoidonNothingSelected(AdapterView<?> parent) {
}
});
}
Post a Comment for "How Can Get Selected Item Id Value In Dynamic Spinner In Android"