Android 创建保存recyclerView中项目数的TextView

Android 创建保存recyclerView中项目数的TextView,android,android-recyclerview,Android,Android Recyclerview,我试图做的是检索recyclerView中的项目数并将其显示为文本。我不断收到相同的错误,这些错误可以在下面的代码中看到: public class COM800s1 extends AppCompatActivity { private FirebaseFirestore db = FirebaseFirestore.getInstance(); private CollectionReference attendanceRef = db.collection("Attendance");

我试图做的是检索recyclerView中的项目数并将其显示为文本。我不断收到相同的错误,这些错误可以在下面的代码中看到:

public class COM800s1 extends AppCompatActivity {

private FirebaseFirestore db = FirebaseFirestore.getInstance();
private CollectionReference attendanceRef = db.collection("Attendance");
private AttendanceAdapter adapter;
private TextView attendanceNumbers;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_com800s1);



    FloatingActionButton floatingActionButton = findViewById(R.id.button_add_session);
    floatingActionButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(COM800s1.this,NewAttendanceRecord.class));
        }
    });

    setUpRecyclerView();



}

private void setUpRecyclerView() {
    final Query query = attendanceRef.whereEqualTo("sessionID", "5I0PLcpgmwdcjKLYLgkU").orderBy("userEmail", Query.Direction.ASCENDING);

    FirestoreRecyclerOptions<Attendance> options = new FirestoreRecyclerOptions.Builder<Attendance>()
            .setQuery(query, Attendance.class).build();


    adapter = new AttendanceAdapter(options);

    RecyclerView recyclerView = findViewById(R.id.recycler_view);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    recyclerView.setAdapter(adapter);

    attendanceNumbers = findViewById(R.id.attendanceNums);

    recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            int positionView = ((LinearLayoutManager)recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
            attendanceNumbers.setText(Integer.toString(positionView)); //The TextView you want to update
        }
    });





   // attendanceNumbers.setText((adapter.getItemCount() + " students have attended this session"));


    new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0,
            ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
        @Override
        public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
            return false;
        }

        @Override
        public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
            adapter.deleteItem(viewHolder.getAdapterPosition());
        }
    }).attachToRecyclerView(recyclerView);

    adapter.setSetOnItemClickListener(new AttendanceAdapter.OnItemClickListener() {

        @Override
        public void onItemClick(Attendance documentSnapshot, int position) {

        }
    });

}

    @Override
    protected void onStart () {
        super.onStart();
        adapter.startListening();

    }

    @Override
    protected void onStop(){
        super.onStop();
        adapter.stopListening();
    }

}
onCreate()
方法中添加此行

attendanceNumbers = findViewById(R.id.yourTextViewIDhere); 

您缺少这一点,这就是它在
setText()
方法调用中显示
null指针异常的方式。代码中的错误是您没有声明textview
attendanceNumbers

您必须使用此行声明它

attendanceNumbers = findViewById(R.id.YOUR_TEXTVIEW_ID_IN_XML_FILE); 
在调用此方法之前

setUpRecyclerView();
就这样吧

 attendanceNumbers = findViewById(R.id.YOUR_TEXTVIEW_ID_IN_XML_FILE); 
    setUpRecyclerView();
快乐编码

 attendanceNumbers = findViewById(R.id.YOUR_TEXTVIEW_ID_IN_XML_FILE); 
    setUpRecyclerView();