Quiero enumerar todos mis datos almacenados en la base de datos y mostrarlos usando una vista / adaptador de reciclador. ¿Alguien puede ayudarme con esto?
-Tengo una clase de getter y setter (PWClass)
Estos son algunos de mis códigos:
Este es el momento en que estoy almacenando algunos datos en la clase y los agrego a la lista, pero es solo una muestra.
PWClass pwc = new PWClass("Facebook", "Action & Adventure", "2015");
pwList.add(pwc);
pwc = new PWClass("Instagram", "Action & Adventure", "2015");
pwList.add(pwc);
mAdapter.notifyDataSetChanged();
Mi problema es cómo puedo combinar el código anterior y llamar a una consulta en la base de datos para mostrar datos como:
//i declare on top
private List<PWClass> pwList = new ArrayList<>();
private RecyclerView recyclerView;
private PWAdapter mAdapter;
Database controller;
//and from a method below
pwList.add(controller.add_pw());//adding on list array by calling my db method
¿Debo usar algunos para / while bucles / arrays? Estoy pensando en el código anterior pero sé que está mal. ¿Entiendes mi punto?
Por favor ayuda para que pueda entender más, agradezco tus sugerencias gracias!
2 respuestas
Lea esta publicación, obtendrá una idea clara sobre la base de datos Sqlite. mira esto
public List<userData> getAlluser() {
List<userData> usersdetail = new ArrayList<>();
curser = dbs.query("data_table", null, null, null, null, null, null);
try {
if (curser.moveToFirst()) {
do {
userData muser = new userData();
muser.appname = curser.getString(curser.getColumnIndex("appname"));
muser.user = curser.getString(curser.getColumnIndex("email"));
muser.passwordss = curser.getString(curser.getColumnIndex("password"));
usersdetail.add(muser);
} while (curser.moveToNext());
}
} catch (Exception e) {
e.printStackTrace();
}
return usersdetail;
}
public class RecyclerViewAdopterMy extends RecyclerView.Adapter<RecyclerViewAdopterMy.MyViewHolder> implements View.OnClickListener {
List<userData> user = new ArrayList<>();
Context context;
public RecyclerViewAdopterMy(List<userData> user, Context context) {
this.user = user;
this.context = context;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_view, null);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
holder.appR.setText(user.get(position).appname);
holder.nameR.setText(user.get(position).user);
holder.passR.setText(user.get(position).passwordss);
holder.cardR.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
AlertDialog.Builder alertbox = new AlertDialog.Builder(view.getRootView().getContext());
alertbox.setMessage("Do you want delete this item");
alertbox.setTitle("Delete");
alertbox.setIcon(R.drawable.delete);
alertbox.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
int pos = holder.getAdapterPosition();
user.remove(user.get(position));
notifyItemRemoved(position);
notifyItemRangeChanged(position, getItemCount());
notifyItemChanged(position);
}
});
alertbox.show();
return true;
}
});
}
@Override
public int getItemCount() {
return user.size();
}
@Override
public void onClick(View view) {
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
private final TextView appR;
private final TextView nameR;
private final TextView passR;
private final CardView cardR;
public MyViewHolder(View view) {
super(view);
appR = (TextView) view.findViewById(R.id.Appstore);
nameR = (TextView) view.findViewById(R.id.userStore);
passR = (TextView) view.findViewById(R.id.passstore);
cardR = (CardView) view.findViewById(R.id.card);
}
}
}
Preguntas relacionadas
Nuevas preguntas
android
Android es el sistema operativo móvil de Google, que se utiliza para programar o desarrollar dispositivos digitales (teléfonos inteligentes, tabletas, automóviles, televisores, ropa, vidrio, IoT). Para temas relacionados con Android, use etiquetas específicas de Android, tales como intención de Android, actividad de Android, adaptador de Android, etc. Para preguntas que no sean de desarrollo o programación, pero relacionadas con el marco de Android, use este enlace: https: // android.stackexchange.com.