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();
}
}
我正在开发 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();
}
}