Android Studio-从多个记录中获取数据,在Edittext中设置相同的单词
我在Android Studio上工作,在我的项目中有一个表,其中有2条记录上传到DB SQLite上Android Studio-从多个记录中获取数据,在Edittext中设置相同的单词,android,database,sqlite,textview,android-edittext,Android,Database,Sqlite,Textview,Android 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) {
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”字段)中设置一个值,然后按下“MOSTRAR”按钮时,根据我设置的“verbos”,TextView将被表中的信息替换。但它只适用于一条记录(第一条记录),我的意思是,我可以有多条字段“verbos”相同的记录,我需要在其他文本视图中显示它们,而不仅仅是第一条记录
在我的例子中,当我在编辑文本中设置单词“agito”时,我试图从第一条记录(并在tv11、tv12、tv13、tv14中替换)和第二条记录(并在tv21、tv22、tv23、tv24中替换)中获取信息,但它只从两个文本视图(tv11、tv12……和tv21、tv22……)中的第一条记录中获取信息
那么,如何才能从Edittext中设置了相同单词的多个记录中获取信息呢
如果您能帮助我,我将不胜感激。光标有两行供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();
}
}
光标有两行用于agito getting下一行转到第二行如果第二行存在,用于显示大多数情况下使用的列表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();
}
}
谢谢,成功了!但是我的屏幕空间有问题,因为我需要在要替换的活动中使用45 textview,采用表格格式,并且一些单词更大,因此它们会叠加到另一个单词上。你给我推荐什么使这个整洁?我确实需要一个水平滚动条谢谢,成功了!但是我的屏幕空间有问题,因为我需要在要替换的活动中使用45 textview,采用表格格式,并且一些单词更大,因此它们会叠加到另一个单词上。你给我推荐什么使这个整洁?我肯定需要一个水平滚动条