2011-08-16 15 views
15

He agregado una lista de arrays en arrayadapter que contiene objetos, cada una consta de dos elementos/elementos, he establecido con éxito ese adaptador para setListAdapter, ahora quiero obtener esos elementos en setOnItemClickListener de listview.cómo obtener el objeto de listview en setOnItemClickListener en android?

aquí es mi código

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

Respuesta

6
public void onItemClick(AdapterView<?> parent, View view,int position, long id){ 
    something = tweets[position]; 
} 
+0

aparentemente esa es la única solución –

2

Quiere recibir los artículos y hacer lo que con ellos?

Por ejemplo, puede hacer un mensaje de Toast como este.

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

    } 

Espero que esto ayude.

48
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    int color = parent.getAdapter().getItem(position); 
} 
+0

Gracias. Eso me ayudó mucho. – Ark

+0

La respuesta más correcta –

+0

Genial, esta es la respuesta – Ramon

-2

getListView().getItemAtPosition(position) devolverá un Object en su TweetListAdaptor

2

y si tiene la vista de lista preparada con todos los datas más y desea obtener un valor de un único uso objet:

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

Donde mi vista de lista es "listprod" y quiero obtener el valor en la posición , donde textnomprod es mi objet e im ahorro en mi variable de tvTest

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

Considere en el ejemplo anterior,

  • objeto que se utiliza en la vista de lista se llama de Windows,
  • el objeto de la El elemento al que se hace clic en la vista de lista se llama clic enObjeto,
  • el arraylist utilizado se llama adaptador.

Además, asegúrese de que prefijar su ArrayList con definitiva.

0

Resolví este problema usando su adaptador que estaba configurado.

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

Solo tenga en cuenta que el adaptador se debe inicializar y establecer en ListView.

De esta manera, puede acceder a las propiedades del objeto que desea.

Cuestiones relacionadas