Я занимаюсь разработкой с использованием курса Pluralsight «Улучшение работы с приложениями для Android» в качестве руководства, но из-за изменений в Android некоторые методы больше не применяются. После реализации Java-кода в соответствии с инструкциями, когда я выбрал элемент курса на панели навигации, он все равно отображает тот же контент, что и элемент заметки. Пожалуйста, помогите
Я попытался исправить это, используя документацию и другие сообщения на Ящике навигации здесь @ Переполнение стека, но не повезло
mNoteLayoutManager = new LinearLayoutManager(this);
mCoursesLayoutManager = new GridLayoutManager(this, 2);
List<NoteInfo> notes = DataManager.getInstance().getNotes();
mNoteRecyclerAdapter = new NoteRecyclerAdapter(this, notes);
List<CourseInfo> courses = DataManager.getInstance().getCourses();
mCourseRecyclerAdapter = new CourseRecyclerAdapter(this, courses);
displayNotes();
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_notes) {
displayNotes();
} else if (id == R.id.nav_courses) {
displayCourses();
} else if (id == R.id.nav_share) {
handleSelection("Don't you think you've shared enough");
} else if (id == R.id.nav_send) {
handleSelection("Send");
}
DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MainActivity.this, NoteActivity.class));
}
});
DrawerLayout drawer = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view);
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
mAppBarConfiguration = new AppBarConfiguration.Builder(
R.id.nav_notes, R.id.nav_courses, R.id.nav_share, R.id.nav_send)
.setDrawerLayout(drawer)
.build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
NavigationUI.setupWithNavController(navigationView, navController);
initializeDisplayContent();
}
Элемент курса должен отображать курс, а заметка отображает курси названия заметок
private final Context mContext;
private final List<NoteInfo> mNotes;
private final LayoutInflater mLayoutInflater;
public NoteRecyclerAdapter(Context context, List<NoteInfo> notes) {
mContext = context;
mNotes = notes;
mLayoutInflater = LayoutInflater.from(mContext);
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = mLayoutInflater.inflate(R.layout.item_note_list, parent, false);
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
NoteInfo note = mNotes.get(position);
holder.mTextCourse.setText(note.getCourse().getTitle());
holder.mTextTitle.setText(note.getTitle());
holder.mCurrentPosition = position;
}
@Override
public int getItemCount() {
return mNotes.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public final TextView mTextCourse;
public final TextView mTextTitle;
public int mCurrentPosition;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mTextCourse = itemView.findViewById(R.id.text_course);
mTextTitle = itemView.findViewById(R.id.text_title);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(mContext, NoteActivity.class);
intent.putExtra(NoteActivity.NOTE_POSITION, mCurrentPosition);
mContext.startActivity(intent);
}
});
}
}
}
public class CourseRecyclerAdapter extends RecyclerView.Adapter<CourseRecyclerAdapter.ViewHolder> {
private final Context mContext;
private final List<CourseInfo> mCourses;
private final LayoutInflater mLayoutInflater;
public CourseRecyclerAdapter(Context context, List<CourseInfo> courses) {
mContext = context;
mCourses = courses;
mLayoutInflater = LayoutInflater.from(mContext);
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = mLayoutInflater.inflate(R.layout.item_course_list, parent, false);
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
CourseInfo course = mCourses.get(position);
holder.mTextCourse.setText(course.getTitle());
holder.mCurrentPosition = position;
}
@Override
public int getItemCount() {
return mCourses.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public final TextView mTextCourse;
public int mCurrentPosition;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mTextCourse = itemView.findViewById(R.id.text_course);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, mCourses.get(mCurrentPosition).getTitle(),
Snackbar.LENGTH_LONG).show();
}
});
}
}
}