Ну, я должен сделать проект для школы;так как в моем проекте много полей, я хочу показать его в RecyclerView, создав множество объектов для их отображения.
Итак, иногда я получаю String и Int.Я намеревался создать несколько объектов (String ColumnName, Int Value).
Я уже много пробовал об этом коде, но я не знаю, что делать, чтобы он работал, теперь он говорит, что он не работаетпри первом если.Давайте углубимся в код.
public AdminSQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase BaseDeDatos) {
BaseDeDatos.execSQL("create table personajes(apellido text primary key, nombre text, edad int, genero text, raza text, clase text, " +
"fuerza int, destreza int, resistencia int, inteligencia int, percepcion int, voluntad int, carisma int, apariencia int, manipulacion int, " +
"pelea int, atletismo int, robar int, sigilo int, nadar int, montar int, abrirCerr int, resDolorF int, escalar int, evadir int, esquivar int, bloquear int, " +
"alerta int, supervivencia int, rastrear int, concentracion int, buscar int, esconderse int, resDolorM int, estrategia int, escuchar int, conGeneral int, tasar int, " +
"mentir int, empatia int, liderazgo int, intimidar int, callejeo int, comercio int, seducir int, protocolo int, convencer int, actuar int, timar int, disfraz int, " +
"tecnicasHechizos text, inventario text)");
}
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this, "personajes",null, 5);
SQLiteDatabase BaseDeDatos = admin.getReadableDatabase();
Cursor fila = BaseDeDatos.rawQuery("select * from personajes", null);
int n = 0;
if(fila.moveToFirst()){
apellido.setText(fila.getString(n));
n = fila.getColumnCount();
System.out.println("apellido");
}
fila.moveToNext();
do{
if (fila.getColumnName(n).equalsIgnoreCase("nombre")) {
nombre.setText(fila.getString(n));
n = fila.getColumnCount();
System.out.println("nombre");
} else if (fila.getColumnName(n).equalsIgnoreCase("edad")) {
edad.setText(fila.getInt(n) + "");
n = fila.getColumnCount();
System.out.println("edad");
} else if (fila.getColumnName(n).equalsIgnoreCase("genero")) {
genero.setText(fila.getString(n));
n = fila.getColumnCount();
} else if (fila.getColumnName(n).equalsIgnoreCase("raza")) {
raza.setText(fila.getString(n));
n = fila.getColumnCount();
} else if (fila.getColumnName(n).equalsIgnoreCase("clase")) {
clase.setText(fila.getString(n));
n = fila.getColumnCount();
} else if (fila.getColumnName(n).equalsIgnoreCase("tecnicasHechizos")) {
} else if(fila.getColumnName(n).equalsIgnoreCase("inventario")){
}else{
if(fila.isNull(n)){
Tiradas_Ficha secundarias = new Tiradas_Ficha(fila.getColumnName(n), 0);
this.tiradas.add(secundarias);
}else{
Tiradas_Ficha secundarias = new Tiradas_Ficha(fila.getColumnName(n), fila.getInt(n));
this.tiradas.add(secundarias);
}
}
n++;
}while(fila.moveToNext());
admin.close();
BaseDeDatos.close();
}
Исключение составляют: -
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=52; index=52
at android.database.AbstractCursor.getColumnName(AbstractCursor.java:340)
at com.example.eag.myapplication.Visualizacion_Ficha.actualizarTiradas(Visualizacion_Ficha.java:63)
at com.example.eag.myapplication.Visualizacion_Ficha.onCreate(Visualizacion_Ficha.java:32)
at android.app.Activity.performCreate(Activity.java:7383)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3250)