我在代码中创建了一个adapterview以及bottomnavigation视图。 这是我用于所有导航视图的父活动
<activity android:name=".activity.patient.painpoint.PainPointBackView"
android:parentActivityName=".activity.patient.assessment.PatientAssessmentActivity" />
这是我作为所有选项卡的parentActivity提供的适配器视图
[![适配器视图] [1]] [1]
这是我使用的标签之一,
[![标签视图] [2]] [2]
如何导航到父活动,即点击时的适配器视图&#34;评估&#34;选项卡视图中的图标。如果我使用onbackpressed(),它将转到另一个选项卡。我不需要使用intent调用,因为它是一个适配器,我需要再次传递所有值。是否有任何方式从java代码(PatientAssessmentActivity.class)调用父活动,如果我按工具栏后退按钮,它将导航到父活动。当我点击评估标签图标时,我需要这样做。
这是我用过的代码,
private void setupNavigationView() {
BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
Menu menu = bottomNavigationView.getMenu();
MenuItem menuItem = menu.getItem(2);
menuItem.setChecked(true);
assessment = realm.where(Assessment.class).equalTo("patient_id", patientID).findFirst();
Log.v(Constants.TAG, "addsdsds " + assessment);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.action_assessment:
**here i need to navigate to parent activity**
break;
case R.id.action_front:
Intent intent = new Intent(PainPointBackView.this, PainPointFrontView.class);
intent.putExtra("patient_id", assessment.getPatient_id());
intent.putExtra("assessment_id", assessment.getId());
startActivity(intent);
break;
case R.id.action_back:
break;
case R.id.action_left:
Intent intent2 = new Intent(PainPointBackView.this, PainPointLeftView.class);
intent2.putExtra("patient_id", assessment.getPatient_id());
intent2.putExtra("assessment_id", assessment.getId());
startActivity(intent2);
break;
case R.id.action_right:
Intent intent3 = new Intent(PainPointBackView.this, PainPointRightView.class);
intent3.putExtra("patient_id", assessment.getPatient_id());
intent3.putExtra("assessment_id", assessment.getId());
startActivity(intent3);
break;
}
return false;
}
});
}
答案 0 :(得分:1)
您可以尝试使用,
Intent intent = new Intent(getApplicationContext(), PatientAssessmentActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
根据Android Doc,
FLAG_ACTIVITY_CLEAR_TOP如果设置,则启动的活动是 已经在当前任务中运行,而不是启动新任务 该活动的实例,其上的所有其他活动 将被关闭,这个意图将被传递到(现在在顶部) 旧活动作为新的意图
参考:Intent