Estoy intentando crear botones programáticamente en mi aplicación de Android dependiendo de cuántos elementos tengo en mi base de datos sqlite. Los botones están ahí, pero mi problema es establecer onClick
en cada botón porque quiero mostrar contenido diferente cuando el usuario hace clic en los botones. Estoy usando este código por ahora:Botón de creación de Android programmatically issue
for(cursorCol.move(0); cursorCol.moveToNext(); cursorCol.isAfterLast()){
Id = Integer.parseInt(cursorCol.getString(cursorCol.getColumnIndex("id")));
Log.i("Id","Id : "+Id);
titleButton = cursorCol.getString(cursorCol.getColumnIndex("title"));
Log.i("titleButton","titleButton : " + titleButton);
elemOrder1 = Integer.parseInt(cursorCol.getString(cursorCol.getColumnIndex("elemOrder")));
Log.i("elemOrder1 ","elemOrder1 : " + elemOrder1);
btn = new Button(this);
btn.setText(" " + titleButton + " ");
btn.setId(Id);
btn.setTextColor(Color.parseColor("#000000"));
btn.setTextSize(12);
btn.setPadding(10, 10, 10, 10);
btn.setBackgroundResource(R.drawable.gray_button);
btnlayout.addView(btn,params);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
infoCard.removeAllViews();
for(int i=0;i<=cursorCol.getCount();i++){
Log.i("","titleButton : "+titleButton);
}
}
}
pero el problema es que cuando hago clic en el botón que está mostrando sólo el último titleButton
. En realidad, no necesito mostrar titleButton
, solo lo hice con fines de prueba. ¿Alguna idea de cómo puedo crear diferentes métodos onClick
para cada botón?
¡Esa es la respuesta correcta! ¡Muchas gracias por esto! No me di cuenta de que estoy trabajando con el mismo botón cada vez. –
No hay problema. Estoy feliz de ayudar – NotACleverMan
Él crea una nueva instancia con "nuevo", por lo que no hay problema. –