Configuración de OnClickListeners para vistas añadidas dinámicamente

Estoy agregando una vista pequeña a un diseño lineal. tengo que aplicar un View.OnClickListener a él, pero a pesar de que la vista se ha añadido, el onClick sigue sin disparar. Aquí está mi método

for (Streams stream : streamArray) {
streamCount++;
    if (!(streamCount > 3)) {
    // ADD AN ITEM
    View v = li.inflate(R.layout.stream_item, theLinearLayoutforStreamItems, false);
    //SET ONCLICK

    v.setOnClickListener(new android.view.View.OnClickListener() {

        public void onClick(View v) {
            Log.i("onclick", ""+position );
            }
        });

    txtStreamItem = (TextView) v.findViewById(R.id.txtViewStream_item);
    txtStreamItem.setText(stream.name);
    theLinearLayoutforStreamItems.addView(v);

}

La onClick()no dispara No sé por qué, y no puedo encontrar nada en Internet al respecto.

preguntado el 12 de junio de 12 a las 10:06

2 Respuestas

Creo que lo que realmente quieres lograr es:

txtStreamItem.setOnClickListener(new android.view.View.OnClickListener() {

    public void onClick(View v) {
        Log.i("onclick", ""+position );
        }
    });

Ponlo justo debajo de esta línea:

txtStreamItem = (TextView) v.findViewById(R.id.txtViewStream_item);

Respondido el 12 de junio de 12 a las 10:06

Gracias. funcionó. Creo que fue más un problema de lógica que un problema de SDK. - prometheuspk

View v es un contenedor contiene TextView, esto es a lo que realmente desea acceder. - Ariefbayu

Kit View.setClickable & focus-able true.

Respondido el 12 de junio de 12 a las 15:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.