2012-04-26 3 views
1

Alors, j'ai un ArrayList qui a nom et idComment utiliser spinner dans Android de cette façon particulière?

Gil 232 
Asty 2423 and so on. 

Pour l'utiliser dans la fileuse, ce que je faisais était de créer deux ArrayLists de cordes séparées. L'un contenant les noms et l'autre les identifiants correspondants. Donc, une fois que l'utilisateur est sélectionné, j'obtiendrai l'identifiant correspondant de la position.

Je ne suis pas sûr de savoir comment faire cette dernière partie. Quant à, comment obtenir la position?>parent.getItemAtPosition(pos).toString(); Cela me donne à nouveau le nom et non la position du nom dans le ArrayList que je peux utiliser pour récupérer l'ID de l'autre liste. Comment faire? Et, est-ce leur meilleur moyen de s'y prendre?

+0

http://stackoverflow.com/questions/1625249/android-how-to-bind-spinner-to-custom-object-list – MKJParekh

Répondre

1
public class User { 
    public int id; 
    public String name; 
} 

public class CustomAdapter extends ArrayAdapter<Data> implements Spinner 
                 .OnItemSelectedListener { 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent){ 
     LayoutInflater inflater = getLayoutInflater(); 
     View view = inflater.inflate(android.R.layout.simple_spinner_item, 
         parent, false); 
     Data data = getItem(position); 
     // Do something with data and view here 
     return view; 
    } 

    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, 
               int position, long arg4) { 
     Data data = getItem(position); 
     // Do something with data here 
    } 

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

} 

Ensuite, créez un ArrayList<Data> et à utiliser avec votre CustomAdapter.

0

La variable pos est la position de l'élément sélectionné à partir de Spinner, vous pouvez donc utiliser cette position pour obtenir l'ID (du second ArrayList) du nom correspondant qui est sélectionné.

En alternative, vous pouvez également créer un HashMap<String,String> map et en ce que les valeurs de vente de carte comme map.put(name,id); donc lorsque l'utilisateur choisira la valeur de Spinner, vous aurez le nom selected.And puis utilisez la carte pour obtenir id correspondant

like String id = map.get(selected_name); 

Espérons que cela aidera.

Questions connexes