выход из приложения, как только я вхожу в домашнее задание класса, «logcat» выдает ошибку «Не могу преобразовать объект типа java.lang.String в тип com.example.root.minimt.HomeworkModel», я не могунайдите в чем проблема, пожалуйста, помогите мне. Очевидно, выдает ошибку, потому что я неправильно определил тип переменной, вопрос в том, что
homework.java
public class homework extends AppCompatActivity {
private RecyclerView recyclerView;
private List<HomeworkModel> result;
private HomeworkAdapter adapter;
private FirebaseDatabase database;
private DatabaseReference reference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.homework);
getSupportActionBar().setTitle("домашнее задание");
database = FirebaseDatabase.getInstance();
reference = database.getReference("homework");
result = new ArrayList<>();
recyclerView = findViewById(R.id.homework_list);
recyclerView.setHasFixedSize(true);
LinearLayoutManager llm = new LinearLayoutManager(this);
llm.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(llm);
adapter = new HomeworkAdapter(result);
recyclerView.setAdapter(adapter);
updateList();
}
@Override
public boolean onContextItemSelected(MenuItem item){
switch (item.getItemId()){
case 0:
break;
case 1:
break;
}
return super.onContextItemSelected(item);
}
private void updateList(){
reference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
result.add(dataSnapshot.getValue(HomeworkModel.class));
adapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
HomeworkModel model = dataSnapshot.getValue(HomeworkModel.class);
int index = getItemIndex(model);
result.set(index, model);
adapter.notifyItemChanged(index);
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
HomeworkModel model = dataSnapshot.getValue(HomeworkModel.class);
int index = getItemIndex(model);
result.remove(index);
adapter.notifyItemRemoved(index);
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
private int getItemIndex(HomeworkModel homework){
int index = -1;
for(int i= 0; i < result.size(); i++ ){
if (result.get(i).key.equals(homework.key)) {
index = 1;
break;
}
}
return index;
}
}
HomeworkModel.java
public class HomeworkModel {
String name, homework, key;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public HomeworkModel(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHomework() {
return homework;
}
public void setHomework(String homework) {
this.homework = homework;
}
public HomeworkModel(String name, String homework, String key) {
this.name = name;
this.homework = homework;
this.key = key;
}
}
HomeworkAdapter.java
public class HomeworkAdapter extends RecyclerView.Adapter<HomeworkAdapter.HomeworkViewHolder> {
private List<HomeworkModel> list;
public HomeworkAdapter(List<HomeworkModel> list) {
this.list = list;
}
@Override
public HomeworkViewHolder onCreateViewHolder( ViewGroup parent, int viewType) {
return new HomeworkViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.view_item, parent, false));
}
@Override
public void onBindViewHolder(final HomeworkViewHolder holder, int position) {
HomeworkModel homework = list.get(position);
holder.textName.setText(homework.name);
holder.textHomework.setText(homework.homework);
holder.itemView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
menu.add(holder.getAdapterPosition(), 0, 0, "Удалить");
menu.add(holder.getAdapterPosition(), 1, 0, "Изменить");
}
});
}
@Override
public int getItemCount() {
return list.size();
}
class HomeworkViewHolder extends RecyclerView.ViewHolder {
TextView textName, textHomework;
public HomeworkViewHolder(View itemView) {
super(itemView);
textName = itemView.findViewById(R.id.text_name);
textHomework = itemView.findViewById(R.id.text_homework);
}
}
}
структура базы данных.json {
"homework" : {
"rassian" : {
"homework" : "C.73 №253",
"name" : "русский язык"
}
}
}