2015-11-08 6 views
0

==== Mise à jour ====ListView personnalisé avec Spinner

Il y avait une faute de frappe dans le bloc de code, donc vous les gars confondus. Ce que je veux faire est d'obtenir l'id de l'élément de liste de la vue de la liste, qui détient le spinner que je suis en train de cliquer en ce moment.

==== ==== Mise à jour

Je mettre en œuvre une vue sur la liste personnalisée qui a boîte de spinner et du texte pour chaque élément de la liste. Et je veux enregistrer la valeur sélectionnée de spinner en utilisant onItemSelected() dans l'élément de la liste, mais je n'ai aucune idée de trouver un élément de la liste. Comment puis-je obtenir ceci, quelqu'un peut-il m'aider?

Voici mes codes dans l'adaptateur de liste.

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View listItemView = convertView; 

    if (listItemView == null) { 
     listItemView = inflater.inflate(R.layout.listitem, null); 
     ViewHolder viewHolder = new ViewHolder(); 
     viewHolder.view1 = (Spinner) listItemView.findViewById(R.id.view1); 
     viewHolder.view2 = (TextView) listItemView.findViewById(R.id.view2); 

     viewHolder.view1.setFocusable(false); 
     viewHolder.view2.setFocusable(false); 

     viewHolder.view1.setAdapter(view1Adapter); 
     viewHolder.view1.setPrompt("Select"); 
     viewHolder.view1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       String selectedId = spinnerItemList.get(position).id; 
       // todo : need to find a way to get list item of list view, which has this spinner. 
      } 

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

      } 
     }); 

     listItemView.setTag(viewHolder); 
    } 

    CustomListItem item = listViewItemList.get(position); 
    ViewHolder viewHolder = listItemView.getTag(); 
    viewHolder.view1.setSelection(item.view1Value); 
    viewHolder.view2.setText(String.valueOf(item.view2Value)); 

    return listItemView; 
} 
+0

pouvez-vous ajouter le code complet de l'adaptateur? –

Répondre

0

Essayez cette façon, il fonctionnera ..

String selectedId = spinnerItemList.getSelectedItemPosition(); 
0

Vous pouvez trouver l'élément sélectionné à l'aide ci-dessous extrait.

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

    //here if you use single Field then belo line is true to get id. 

      String selectedId = spinnerItemList.get(position); 

    //if you using pojoclass for data set & get then you need to do like below. 

      String selectedId = spinnerItemList.get(position).getId(); 
    // todo : need to find a way to get list item index. 


     } 

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

     } 
    }); 
+0

oups, il y avait une faute de frappe dans le bloc de code, je peux obtenir l'identifiant de l'élément sélectionné de spinner. Ce que je veux faire est d'obtenir l'ID de l'élément de liste de la vue de la liste, qui contient spinner que je suis en train de cliquer maintenant. – user3110409