2016-04-04 8 views
0

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; 
    } 
} 

Antwort

0

Versuchen Sie, diese

@Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) { 

      String text= (String) sprCity.getSelectedItem(); 
      Log.e("Spinner detail ",">>>>>>"+text); 
    } 
+0

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 –

+0

Ihr Adapter Inhalt ist String rit ?? !! –

0

Endlich habe ich die Lösung.

sprCity.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
       @Override 
       public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 



        Log.e("Checking spinner", ">>>" + alZilcode.get(position).getStrCity().toString()); 
       } 

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

       } 
      });