Я никогда не понимал, как работает база данных SQL. Поэтому я немного искал и нашел эту библиотеку. Я все еще пытаюсь это сделать.
Я хочу отобразить данные в RecyclerView
, используя RecyclerAdapter
. Я всегда работал с этим, и я знаю, как это сделать, но только с помощью Cloud Firestore. Итак, мой вопрос: как отобразить данные в той библиотеке базы данных, которые я нашел в RecyclerView?
Я написал код адаптера и создал класс модели. Мне все еще нужна часть, в которой отображаются данные.
Вот как читать все данные:
Cursor res = easyDB.getAllData();
while (res.moveToNext()) {
int anIntegerVariable = res.getInt(columnIndex);
String aStringVariable = res.getString(columnIndex);
}
User.java
public class User {
String id, name, password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(String id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
public User() {
}
}
UsersRecyclerAdapater.java
public class UsersRecyclerAdapater extends RecyclerView.Adapter<UsersRecyclerAdapater.ViewHolder> {
public List<User> userList;
public Context context;
public UsersRecyclerAdapater(Context context, List<User> userList) {
this.userList = userList;
this.context = context;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.user_list_item, parent, false);
context = parent.getContext();
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
holder.setIsRecyclable(false);
String id = userList.get(position).getId();
String name = userList.get(position).getName();
String password = userList.get(position).getPassword();
holder.setIdView(id);
holder.setName(name);
holder.setPasswordView(password);
}
@Override
public int getItemCount() {
return userList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView idView;
private TextView nameView;
private TextView passwordView;
public View view;
public ViewHolder(@NonNull View itemView) {
super(itemView);
view = itemView;
}
public void setIdView(String id) {
idView = view.findViewById(R.id.user_id);
idView.setText(id);
}
public void setName(String name) {
nameView = view.findViewById(R.id.user_name);
nameView.setText(name);
}
public void setPasswordView(String password) {
passwordView = view.findViewById(R.id.user_password);
passwordView.setText(password);
}
}
}
MainActivity.java
easyDB = EasyDB.init(this, DATABASE_NAME)
.setTableName(TABLE_NAME)
.addColumn(new Column(NAME_COLUMN, "TEXT"))
.addColumn(new Column(PASSWORD_COLUMN, "TEXT"))
.doneTableColumn();
mainAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = mainName.getText().toString();
String password = mainPassword.getText().toString();
boolean done = easyDB.addData(1, name)
.addData(2, password)
.doneDataAdding();
if (done) {
Toast.makeText(MainActivity.this, "User added successfully", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "User not added", Toast.LENGTH_SHORT).show();
}
}
});
mainRead.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*
Cursor cursor = easyDB.getAllData();
while (cursor.moveToNext()) {
String name = cursor.getString(1);
String password = cursor.getString(2);
Toast.makeText(MainActivity.this, name + "\n" + password, Toast.LENGTH_SHORT).show();
}
*/
startActivity(new Intent(MainActivity.this, UsersActivity.class));
}
});
Любая помощь, пожалуйста?