Adapter
package com.example.notes.adapter;
import android.content.Context;
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 com.example.notes.R;
import java.util.ArrayList;
import java.util.List;
public class MainAdapter extends RecyclerView.Adapter<MainAdapter.MyViewHolder> {
private Context context;
private List<String> mainArray;
public MainAdapter(Context context) {
this.context = context;
mainArray = new ArrayList<>();
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item_list_layout, parent,false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.setData(mainArray.get(position));
}
@Override
public int getItemCount() {
return mainArray.size();
}
static class MyViewHolder extends RecyclerView.ViewHolder {
private TextView ltitle;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
ltitle = itemView.findViewById(R.id.ltitle);
}
public void setData(String title) {
ltitle.setText(title);
}
}
public void updateAdapter(List<String> newList) {
mainArray.clear();
mainArray.addAll(newList);
notifyDataSetChanged();
}
}
MainActivity
package com.example.notes;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.notes.adapter.MainAdapter;
import com.example.notes.db.MyDbManager;
public class MainActivity extends AppCompatActivity {
private MyDbManager myDbManager;
private EditText title_id, desc_id;
private RecyclerView rView;
private MainAdapter mainAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
myDbManager = new MyDbManager(this);
title_id = findViewById(R.id.title_id);
desc_id = findViewById(R.id.desc_id);
rView = findViewById(R.id.rView);
rView.setLayoutManager(new LinearLayoutManager(this));
rView.setAdapter(mainAdapter);
mainAdapter = new MainAdapter(this);
}
@Override
protected void onResume() {
super.onResume();
myDbManager.openDb();
mainAdapter.updateAdapter(myDbManager.getDb());
}
public void onClickAdd(View view) {
Intent add = new Intent(MainActivity.this, EditActivity.class);
startActivity(add);
}
@Override
protected void onDestroy() {
super.onDestroy();
myDbManager.closeDb();
}
}
您将
null适配器分配给 RecyclerView,然后它不会显示任何内容。在此处交换这些行,它将起作用: