Я работаю над Android Studio, и у меня есть таблица с 2 записями, загруженными в БД SQLite в моем проекте.
public class BaseDeDatos extends SQLiteOpenHelper {
public BaseDeDatos(Context context) {
super(context, "verbos.db", null, 8);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table verbos(id integer, verbos text, referencia text, eu text, voce text, nos text)");
db.execSQL("insert into verbos values(1, 'agito', 'abalo', 'abala', 'abalamos', 'abalam')," +
"(2, 'agito', 'abalava', 'abalava', 'abalávamos', 'abalavam')");
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("DROP TABLE IF EXISTS verbos");
db.execSQL("create table verbos(id integer, verbos text, referencia text, eu text, voce text, nos text)");
db.execSQL("insert into verbos values(1, 'agito', 'abalo', 'abala', 'abalamos', 'abalam')," +
"(2, 'agito', 'abalava', 'abalava', 'abalávamos', 'abalavam')");
}
}
И это мое действие "Verbos", где я нахожусь работает:
public class Verbos extends AppCompatActivity {
Button mostrar;
EditText etVerbos;
TextView tv1, tv11, tv12, tv13, tv14, tv15, tv21, tv22, tv23, tv24, tv25;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.verbos);
etVerbos = findViewById(R.id.etIngresar);
tv1 = findViewById(R.id.tv1);
tv11 = findViewById(R.id.tv11);
tv12 = findViewById(R.id.tv12);
tv13 = findViewById(R.id.tv13);
tv14 = findViewById(R.id.tv14);
tv21 = findViewById(R.id.tv21);
tv22 = findViewById(R.id.tv22);
tv23 = findViewById(R.id.tv23);
tv24 = findViewById(R.id.tv24);
mostrar = findViewById(R.id.bnMostrar);
mostrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
BaseDeDatos admin = new BaseDeDatos(getApplicationContext());
SQLiteDatabase db = admin.getWritableDatabase();
String[] parametros = {etVerbos.getText().toString()};
try {
Cursor cursor = db.rawQuery("select * from verbos WHERE verbos =?", parametros);
cursor.moveToFirst();
tv1.setText(cursor.getString(1));
tv11.setText(cursor.getString(2));
tv12.setText(cursor.getString(3));
tv13.setText(cursor.getString(4));
tv14.setText(cursor.getString(5));
Cursor cursor2 = db.rawQuery("select * from verbos WHERE verbos =?", parametros);
cursor2.moveToFirst();
tv21.setText(cursor2.getString(2));
tv22.setText(cursor2.getString(3));
tv23.setText(cursor2.getString(4));
tv24.setText(cursor2.getString(5));
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "El Verbo no existe", Toast.LENGTH_LONG).show();
}
}
});
}
}
Когда я устанавливаю значение в EditText (в данном случае поле "verbos"), а затем нажимаю sh кнопку "MOSTRAR", текстовые представления заменяются информацией в стол, в зависимости от "глаголов", которые я установил. Но он работает только с одной записью (первой), я имею в виду, что у меня может быть несколько записей с одинаковыми полями "verbos", и мне нужно показать их все в других текстовых представлениях, а не только в первой записи .
В моем примере я пытаюсь получить информацию из первой записи (и заменить в tv11, tv12, tv13, tv14) и второй записи (и заменить в tv21, tv22, tv23, tv24), когда я установил слово «agito» в EditText, но он получает только информацию из первой записи в обоих текстовых представлениях (tv11, tv12 ..... и tv21, tv22 ......).
Итак, как я могу получить информацию из нескольких записей с одним и тем же словом, заданным в тексте редактирования?
Буду очень рад, если вы поможете мне.