Ich möchte Spinner-Wert auf Zeichenfolge abrufen. Ich habe benutzerdefinierte Spinner-Adapter verwendet, um Daten aus Json und Daten laden, um Spinner erfolgreich, aber ich bin nicht in der Lage, geladene Daten zu Zeichenfolge zu erhalten.Android: Holen Sie Spinner Daten zu Zeichenfolge
public class RegisterActivity extends Activity {
private Spinner sprCity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
getId();
addSpinnerData();
setListner();
}
private void getId()
{
sprCity = (Spinner) findViewById(R.id.sprCity);
}
private void setListner() {
sprCity.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String text= parent.getItemAtPosition(position).toString() ;
Log.e("Spinner detail ",">>>>>>"+text);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
private void addSpinnerData() {
JSONArray cityArray = object.getJSONArray(WebField.ZIP_DETAIL.RESPONSE_ARRAY_CITY_LIST);
for (int i = 0; i < cityArray.length(); i++)
{
getZipDetailModel = new GetZipDetailModel();
JSONObject object1 = cityArray.getJSONObject(i);
Log.e("Checking ojbect1", "******" + object1);
strGetCity = object1.getString(WebField.ZIP_DETAIL.RESPONSE_OBJECT_CITY_NAME);
getZipDetailModel.setStrCity(object1.getString(WebField.ZIP_DETAIL.RESPONSE_OBJECT_CITY_NAME));
alZilcode.add(getZipDetailModel);
myAdapter = new MyAdapter(RegisterActivity.this, alZilcode);
}
sprCity.setAdapter(myAdapter);
myAdapter.notifyDataSetChanged();
}
}
Hier ist meine benutzerdefinierte Spinner Adapter.
public class MyAdapter extends BaseAdapter{
private Context context;
private static LayoutInflater inflater;
private ArrayList<GetZipDetailModel> objects;
public MyAdapter(Context context, ArrayList<GetZipDetailModel> p1) {
this.context = context;
this.objects = p1;
}
@Override
public int getCount() {
return objects.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
class Holder
{
TextView lable;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View myView = null;
try {
Holder holder;
myView = convertView;
if (myView == null) {
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
myView = inflater.inflate(R.layout.adapter_city, null);
holder = new Holder();
holder.lable= (TextView) myView.findViewById(R.id.tvCityName);
myView.setTag(holder);
}
else {
holder = (Holder) myView.getTag();
}
holder.lable.setText(objects.get(position).getStrCity());
} catch (Exception e) {
e.printStackTrace();
}
return myView;
}
}
hier ist meine Modellklasse.
public class GetZipDetailModel {
private String strCity,strState,strCountry;
public String getStrCity() {
return strCity;
}
public void setStrCity(String strCity) {
this.strCity = strCity;
}
public String getStrState() {
return strState;
}
public void setStrState(String strState) {
this.strState = strState;
}
public String getStrCountry() {
return strCountry;
}
public void setStrCountry(String strCountry) {
this.strCountry = strCountry;
}
}
Danke für Ihre Antwort, aber über Code anzeigen Fehler wie this.java.lang.ClassCastException: java.lang.Integer nicht java.lang.String gegossen werden kann –
Ihr Adapter Inhalt ist String rit ?? !! –