Android: cómo agregar un método de clic de artículo a un ArrayAdapter

Tengo un ArrayAdapter simple. Quiero configurar un listener para cada clic de fila de mi lista de tal manera que se abra una nueva Actividad. ¿Como podría hacerlo? Mi código de ArrayAdapter –

public class CountryListAdapter extends ArrayAdapter<String> { private final Activity context; private final ArrayList<String> names; public CountryListAdapter(Activity context, ArrayList<String> names) { super(context, R.layout.rowlayout, names); this.context = context; this.names = names; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = context.getLayoutInflater(); View rowView = inflater.inflate(R.layout.rowlayout, null, true); TextView textView = (TextView) rowView.findViewById(R.id.label); textView.setText(names.get(position)); return rowView; } 

3 Solutions collect form web for “Android: cómo agregar un método de clic de artículo a un ArrayAdapter”

Suponiendo que está utilizando una ListActivity implementando OnItemClickListener , podría usar este código:

 ArrayAdapter<Object> ad = new ArrayAdapter<Object>(this, android.R.layout.simple_list_item_checked, items); setListAdapter(ad); ListView list = getListView(); list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); //list.setItemChecked(0, true); list.setOnItemClickListener(this); 

EDIT: De lo contrario, si no se extiende ListActivity, tiene un listview en su diseño y reemplazar ListView list = getListView() con algo como ListView list = findViewById(R.id.listView) . Reemplazar list.setOnItemClickListener(this) por

 list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { } }); 

Simplemente implemente AdapterView.OnItemClickListener.

 @Override public void onItemClick(AdapterView<?> adapterView, View view, int pos, long l) { Intent i = new Intent(this, ProductActivity.class); i.putExtra("item_id", manager.getItemIdAtIndex(pos)); startActivity(i); } 

A continuación, simplemente establezca la clase con ese método como onItemClickListener en su adaptador.

Una vez que haya configurado su adaptador usando:

 mListView.setAdapter(myCountryListAdapter); 

A continuación, puede configurar un oyente de clics para el listview:

 mListView.setOnParentClickListener(new OnClickListener() { public void onClick(View view,) { ///do what you want the click to do } }); 
  • ¿Es siempre necesario el argumento textViewResourceId?
  • Listview no se actualiza con notifydatasetchanged () llamada
  • Android - Adaptador ListView personalizado - Selección múltiple eliminar - Indexoutofbounds - ¿por qué?
  • ArrayAdapter.getPosition (item) Returns ¿Qué?
  • Error: ArrayAdapter requiere que el ID de recurso sea un TextView
  • Android ¿Cómo puedo sobrescribir el filtro para mi ArrayAdapter?
  • ¿Por qué las recetas promueven sobreescribir getItemViewType y getViewTypeCount cuando no parece necesario?
  • ¿Cómo establecer alturas diferentes para cada fila en un ListView?
  • ListView item link haga clic en el estado de la fila con el botón dentro del elemento de lista
  • Orden de orden inversa en el adaptador de matriz
  • Encabezados ListView de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.