PDA

Ver la Versión Completa : Definir estado de checkbox desde un String


kaiser75
08/08/16, 12:44:34
Vereis , estoy intentando definir el estado por defecto de los checkbox de un listview a su estado por defecto al iniciar la actividad cargandolo desde un string que lo llamo de una base de datos y segun sea true o false me los muestre en la lista, he probado a mostrarlo en un textview y funciona correctamente, pero no consigo leer el string desde el checkbox, String y Boolean no compatibles me marca Android Studio.

este es el codigo

String estado = cursor.getString(cursor.getColumnIndexOrThrow(DbDa tos.KEY_CHECK)...etc);
holder.nom.setText(estado); // asi funciona
holder.cb.setChecked(false); // <-- aqui false llamar el string "estado"

mocelet
08/08/16, 17:33:38
No voy a desgastar la frase de kriogeN xD

String es un tipo y boolean es otro. Una String es una cadena de caracteres arbitrarios, un booleano tiene sólo dos valores, verdadero o falso.

Si quieres una expresión que valga verdadero si la String tiene por texto "true" (que es lo más feo del mundo), sería

"true".equals(estado)

Es decir, en tu ejemplo setChecked("true".equals(estado))

Pero es muy feo guardar una String que ponga el texto "true" cuando existen los tipos boolean.

kriogeN
08/08/16, 18:26:03
No voy a desgastar la frase de kriogeN xD

String es un tipo y boolean es otro. Una String es una cadena de caracteres arbitrarios, un booleano tiene sólo dos valores, verdadero o falso.

Si quieres una expresión que valga verdadero si la String tiene por texto "true" (que es lo más feo del mundo), sería

"true".equals(estado)

Es decir, en tu ejemplo setChecked("true".equals(estado))

Pero es muy feo guardar una String que ponga el texto "true" cuando existen los tipos boolean.

Es que eso ya no es que sea Java, es que es algorítmia básica xD

kaiser75
10/08/16, 20:54:35
Sabeis de algun metodo para guardar el estado de los checkbox de un listview (con adapter) y que me los muestre marcados otra vez al iniciar la aplicacion?, SharedPreferences o SQlite?

kriogeN
10/08/16, 22:32:30
Sabeis de algun metodo para guardar el estado de los checkbox de un listview (con adapter) y que me los muestre marcados otra vez al iniciar la aplicacion?, SharedPreferences o SQlite?

Lo suyo es SQLite, porque con SharedPreferences necesitarás guardar 1 preference por cada línea. Y suponiendo que sean siempre las mismas en cada línea.

Dexafree
10/08/16, 23:08:06
Suena a caso de uso perfecto para base de datos (SQLite), si

kaiser75
12/08/16, 19:20:09
utilizare el mismo post ya que viene al caso, como puedo obtener el "info.id" en el metodo getView de un Adapter?, con un menu contextual usando info.id, pero queria usarlo desde un checkbox en un listview. Si esta marcado me guarda en la base de datos los textos de la lista, y si esta desmarcado los borra en el caso de que exista o se haya guardado previamente.

mDbHelper.deleteNote(info.id); --> funciona en un context menu

dentro del onCheckedChanged tengo:

if (isChecked) {
mDbHelper = new DbTextos(Activity1.this);
mDbHelper.open();
mDbHelper.createNote(nombre, titulo);

} else {
mDbHelper.deleteNote(?); // como obtener info.id?
}