2017-03-06 73 views
1

我想列出所有存儲在數據庫中的數據並使用回收視圖/適配器顯示它。有誰能幫我解決這個問題嗎?SQLite數據庫 - 使用RecyclerView /適配器列出數據庫中的所有數據

-i有一個類的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(); 

我的問題是我如何可以將代碼結合以上並呼籲數據庫查詢,顯示一個類似DATAS:

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

我應該用一些用於/時循環/陣列?我正在考慮上面的代碼,但我知道它錯了。你明白我的觀點了嗎?

請幫助,讓我可以瞭解更多,我感謝您的建議謝謝!

回答

0

閱讀這篇文章,你會得到SQLite數據庫清晰的概念。 check this out

+0

它的工作原理。謝謝你! – APX

0

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); 
 

 

 
     } 
 

 
    } 
 
}

+0

感謝太好的信息刪除數據 – APX