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

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 } }); 
  • Actualización del primer elemento gridview después de que getView lo infla dos veces
  • ¿Qué es "android.R.layout.simple_list_item_1"?
  • Vista personalizada falta constructor utilizado por las herramientas para el adaptador
  • ArrayAdapter utiliza Kotlin android
  • Cómo utilizar ListView, ArrayList, ArrayAdapter y notifyDataSetChanged junto con un runnable, y un Handler de mensaje en el hilo principal
  • Elemento de fila personalizada de Android para ListView
  • Agregar entrada de usuario de Editar texto a la vista de lista
  • ¿Cuál es la diferencia entre ArrayAdapter, BaseAdapter y ListAdapter?
  • NotifyDataSetChanged para varias casillas de verificación
  • ArrayIndexOutOfBoundsException con ArrayAdapter con filtro
  • Utilizar un adaptador de lista personalizado con AutoCompleteTextView y mantener la funcionalidad del auto completo trabajando igual
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.