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

Android Studio - Get data from multiple records setting the same word in Edittext

我正在开发 Android Studio,我有一个 table,其中有 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')");
    }
}

这是我的 "Verbos" activity 我工作的地方:

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" 按钮时,Textview 将被 [=33= 中的信息替换],取决于我设置的"verbos"。但它只适用于一个记录(第一个),我的意思是,我可以有多个字段 "verbos" 相同的记录,我需要在其他 Textviews 中显示它们,而不仅仅是第一个一条记录。

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

那么,如何从Edittext中设置的相同单词的多条记录中获取信息呢?

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

如果存在第二行,则光标有两行用于 agito 下一步转到第二行,用于显示列表 ListView 或 RecyclerView 在大多数情况下使用,它们显示 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();
        }
    }