会挽雕弓如满月,西北望,射天狼。这篇文章主要讲述Android Room Database,检索输入的最新记录的特定值相关的知识,希望能为你提供帮助。
我已经使用android会议室数据库创建了我的应用程序,我正在填写学生的记录,我想在选择学生的姓名时从会议室数据库中检索输入的最新记录的页码。这是我的下面的代码DOA
@Dao
public interface NewRecordDAO {@Insert(onConflict = REPLACE)
public void addRecord(NewRecord... newRecord);
@Update(onConflict = REPLACE)
public void updateRecord(NewRecord newRecord);
@Delete
public void deleteRecord(NewRecord newRecord);
@Query("DELETE FROM newRecord_table")
void deleteAllRecords();
@Query("SELECT * FROM newRecord_table ORDER BY NRdate DESC")
LiveData<
List<
NewRecord>
>
getAllRecord();
@Query("SELECT * FROM newRecord_table WHERE NRdate = (SELECT MAX(NRdate) FROM newRecord_table)")
LiveData<
List<
NewRecord>
>
findRecordByDate ();
}
我也有一个存储库类和视图模型类,但是我不在这里发布这些代码。下面是我检索学生的姓名和手机号码并绑定到微调器中的代码。使用此代码,我想检索从微调器中选择的学生最新记录的页码。
newRecordViewModel = ViewModelProviders.of(AddRecord.this).get(NewRecordViewModel.class);
newRecordViewModel.getAllRecords().observe(this, new Observer<
List<
NewRecord>
>
() {
@Override
public void onChanged(List<
NewRecord>
newRecords) {
}
});
selectStudentName.setTitle(getResources().getString(R.string.select_student_name));
selectStudentName.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(final AdapterView<
?>
adapterView, View view, final int position, final long l) {
if ( position == -1 ) {
Toast.makeText(AddRecord.this, "No record is selected", Toast.LENGTH_SHORT).show();
} else {
String name = adapterView.getItemAtPosition(position).toString();
Toast.makeText(AddRecord.this, name + " is selected", Toast.LENGTH_SHORT).show();
String studentMobile = Objects.requireNonNull(studentViewModel.getAllStudents().getValue()).get(position).getMobileNumber();
studentMOB.setText("Mobile: " + studentMobile);
recordIds = studentViewModel.getAllStudents().getValue().get(position).getId();
}
}
我不知道我是否足够清楚。我希望我是。请帮忙。谢谢
答案【Android Room Database,检索输入的最新记录的特定值】您只需要创建一个新的
Query
即可获取所需的内容。推荐阅读
- 搜索值,然后在Google表格中查找并使用google apps脚本在html中显示行值
- 如何在global.asax中注册Automapper配置类()
- “(AppContainer)的RangeError(最大调用堆栈大小超过” - 阵营与反应热装载机)
- Android Studio中不同的构建类型使用不同的lint.xml吗()
- 错误(在项目':app'上找不到参数[目录'libs']的方法implimentation())
- 如何在PHP中使用Imagick向图像添加水印
- 如何防止本机上下文菜单出现在WinForms中的CefSharp控件上
- 如何在WinForms应用程序中使用带有C#的Material Design控件
- 如何在C# WinForms应用程序中安装,配置和使用MetroFramework(样式化接口组件)