Android Studio - 从多个记录中获取数据,在 Edittext 中设置相同的单词



我正在开发Android Studio,我有一个表,其中包含2条记录上传到我的项目中的DB 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')");
}
}

这是我正在工作的"详细"活动:

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"字段(然后按下"MOSTRAR"按钮时,文本视图将被表中的信息替换,具体取决于我设置的"详细"。但它仅适用于一条记录(第一条(,我的意思是,我可以有多个字段"verbos"相同的记录,我需要在其他文本视图中显示它们,而不仅仅是第一条记录。

在我的示例中,当我在 EditText 中设置单词"agito"时,我试图从第一条记录(并在 tv11、tv12、tv13、tv14 中替换(和第二条记录(并在 tv21、tv22、tv23、tv24 中替换(中获取信息,但它只从两个文本视图(tv11、 电视12.....和TV21,TV22......

那么,我该如何从编辑文本中设置相同单词的多个记录中获取信息?

如果你能帮助我,我将不胜感激。

如果存在第二行,光标有两行用于 agito 获取下一行,则转到第二行,用于显示列表列表视图或回收器视图在大多数情况下,它们显示 1+ 行。

@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);
if (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));
}
if (cursor.moveToNext()) {
tv21.setText(cursor.getString(2));
tv22.setText(cursor.getString(3));
tv23.setText(cursor.getString(4));
tv24.setText(cursor.getString(5));
}
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "El Verbo no existe", Toast.LENGTH_LONG).show();
}
}

最新更新