【发布时间】:2019-09-02 19:09:17
【问题描述】:
我是 Android 开发新手,我需要一些帮助来解决以下问题。 我有 2 个实体:MuscleGroup 和 Practice; MuscleGroup 可以有多种训练方法。在第一个活动中,我在回收站视图中显示所有肌肉群。当我点击一个组时,onClick 方法应该将组名或数据库 ID 传递给第二个活动,以便仅使用所选组的实践来填充另一个 recyclerview。我不想观察任何更改的列表,因为记录已被冻结。
我尝试在没有 Livedata 和没有观察者的 Activity 中使用 dao 方法,但由于方法不能在 UI 线程中使用而出现错误。
public void showPractices(View view) {
Intent practiceIntent = new Intent(PracticeGroupActivity.this,
PracticeActivity.class);
TextView group = view.findViewById(R.id.musclegroupname);
Log.i(PracticeGroupActivity.class.getSimpleName(), "group selected: " + group.getText().toString());
GinnasiumDatabase db = GinnasiumDatabase.getInstance(PracticeGroupActivity.this);
MuscleGroup found = db.muscleGroupDAO().getMuscleGroupByName(group.getText().toString());
if(found != null){
practiceIntent.putExtra("idGroup", found.getId());
startActivity(practiceIntent);
}
}
儿童活动:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_practice);
RecyclerView recyclerView = findViewById(R.id.recyclerpracticeview);
final PracticeListAdapter adapter = new PracticeListAdapter(this);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addItemDecoration(new DividerItemDecoration(this,
DividerItemDecoration.VERTICAL));
int idGroup = getIntent().getExtras().getInt("idGroup");
practiceViewModel = ViewModelProviders.of(this).get(PracticeViewModel.class);
practiceViewModel.getAllPracticesByGroup(idGroup).observe(this, practices -> { adapter.setPractices(practices);});
}
希望我的描述清楚。
【问题讨论】:
标签: java android android-room android-architecture-components