web-dev-qa-db-fra.com

comment obtenir un objet de listview dans setOnItemClickListener dans Android?

J'ai ajouté arraylist dans arrayadapter qui contient des objets composés chacun de deux éléments/éléments, j'ai réussi à définir cet adaptateur pour setListAdapter, maintenant je veux obtenir ces éléments dans setOnItemClickListener de listview.

voici mon code

   TweetListAdaptor adaptor = new TweetListAdaptor(this,R.layout.list_item, tweets);       
   setListAdapter(adaptor); 
   ListView lv = getListView();
   lv.setTextFilterEnabled(true);
   lv.setOnItemClickListener(new OnItemClickListener() 
   {
   public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
   {
     //here i want to get the items             
   }
 });
16
Ramamoorthy
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    int color = parent.getAdapter().getItem(position);
}
51
u-rick
public void onItemClick(AdapterView<?> parent, View view,int position, long id){
    something = tweets[position];
}
6
Cristian

Vous voulez obtenir les objets et faire quoi avec eux?

Par exemple, vous pouvez créer un message Toast comme celui-ci.

public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
    {
        Toast.makeText(getApplicationContext(), tweets[position], Toast.LENGTH_SHORT).show();

    }

J'espère que cela t'aides.

2
utamanna

et si vous avez la liste avec toutes les données et que vous voulez obtenir une valeur d'objet, utilisez uniquement:

ViewGroup row = (ViewGroup) listprod.getChildAt(0);
TextView tvTest = (TextView) row.findViewById(R.id.textnomprod);

Où ma liste est " listprod " et je veux obtenir la valeur dans la position 0 , où textnomprod est mon objet et je sauvegarde dans ma variable tvTest

2
Ismael Renteria
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
        Windows clickedObject = adapter.get(position);
    }
}

Considérons dans l'exemple ci-dessus, 

  • l’objet utilisé dans la liste est nommé Windows
  • l'objet de l'élément cliqué dans la liste est nommé clickedObject ,
  • l'arraylist utilisé s'appelle adapter .

Assurez-vous également de préfixer votre ArrayList avec final .

0
Mishka

J'ai résolu ce problème en utilisant l'adaptateur qui lui était attribué.

TweetListAdaptor adaptor = new TweetListAdaptor(this,R.layout.list_item, tweets);       
setListAdapter(adaptor); 
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() 
{
    public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
   {    
        //here i want to get the items  
        adaptor.getItem(position);   // this is your object
    }
});

Gardez simplement à l'esprit que l'adaptateur doit être initialisé et défini sur ListView.

De cette manière, vous pouvez accéder aux propriétés de l'objet souhaité.

0
Mahdi Moqadasi