【问题标题】:SQLite Database - List all data from database with RecyclerView/adapterSQLite 数据库 - 使用 RecyclerView/adapter 列出数据库中的所有数据
【发布时间】:2017-03-06 08:25:51
【问题描述】:

我想列出我在数据库中存储的所有数据,并在使用回收器视图/适配器时显示它。谁能帮我解决这个问题。

-我有一个getter和setter类(PWClass)

这是我的一些代码:

这是我在类中存储一些数据并将其添加到列表中的时间,但这只是一个示例。

PWClass pwc = new PWClass("Facebook", "Action & Adventure", "2015");
    pwList.add(pwc);

    pwc = new PWClass("Instagram", "Action & Adventure", "2015");
    pwList.add(pwc);

    mAdapter.notifyDataSetChanged();

我的问题是如何结合上面的代码并在数据库上调用查询以显示如下数据:

//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

我应该使用一些 for/while 循环/数组吗?我在想上面的代码,但我知道它错了。你明白我的意思吗?

请帮助我了解更多,感谢您的建议,谢谢!

【问题讨论】:

    标签: android sqlite arraylist android-recyclerview adapter


    【解决方案1】:

    阅读这篇文章,您将对 Sqlite 数据库有一个清晰的认识。 check this out

    【讨论】:

      【解决方案2】:
      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);
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2021-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-15
        相关资源
        最近更新 更多