Recycler View не работает без ошибок - PullRequest
0 голосов
/ 28 апреля 2020

Я пытался использовать представление переработчика, чтобы показать некоторые данные в списке текстовых представлений. Но мой код не работает. В logcat нет сообщений об ошибках. В прошлом я использовал представление переработчика, но не знаю, в чем проблема.

package com.example.diffutil;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;
import java.util.List;

public class Adaptershow extends RecyclerView.Adapter<Adaptershow.MyViewHolder> {
ArrayList<Student> mStudents;

public Adaptershow(ArrayList<Student> mStudents) {
    this.mStudents = mStudents;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View itemView =  LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent,             false);
    return new MyViewHolder(itemView);
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    holder.show.setText(mStudents.get(position).getName());
}

@Override
public int getItemCount() {
    return mStudents.size();
}

public class MyViewHolder extends RecyclerView.ViewHolder{
    TextView show;
    public MyViewHolder(@NonNull View itemView) {
        super(itemView);
        show = itemView.findViewById(R.id.show);
    }
}
}

diffutil - это название проекта.

Код MainActivity ниже: -

public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
ArrayList<Student> students;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    recyclerView = findViewById(R.id.rv);
    students = new ArrayList<>();
    students.add(new Student(1,"a","q"));
    students.add(new Student(1,"b","w"));
    students.add(new Student(1,"c","e"));
    students.add(new Student(1,"d","r"));
    students.add(new Student(1,"e","t"));
    Adaptershow adapter = new Adaptershow(students);
    recyclerView.setAdapter(adapter);
}
}

XML код ниже: -

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rv"/>

</RelativeLayout>

Артикул XML код: -

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/show"
    android:text="hello"/>

</RelativeLayout>

1 Ответ

0 голосов
/ 29 апреля 2020

Я не вижу LinearLayoutManager для вашего рециркулятора:

..........
..........
Adaptershow adapter = new Adaptershow(students);
//here
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...