2017-03-06 9 views
1

データベースに保存されているすべてのデータをリストし、リサイクラビュー/アダプタを使用して表示します。誰でもこのことについて私を助けることができますか?ここではゲッターとセッターのクラス(PWClass)SQLiteデータベース - RecyclerView /アダプタを使用してデータベースのすべてのデータを一覧表示する

を持っ-i

は、私のコードの一部されています

これは私がクラスにいくつかのデータを格納し、リストにそれを追加していた時間ですが、単なるサンプルです。

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

は、私は/しばらくの間、いくつかを使用する必要があります。私は上記のコードを組み合わせることができますし、データベースにクエリを呼び出すと同様件のデータを表示する方法を

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

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

    mAdapter.notifyDataSetChanged(); 

は私の問題はありますループ/配列?私は上記のコードを考えているが、私は間違っていることを知っている。私の主張は分かりますか?

私がもっと理解できるように助けてください、あなたの提案をありがとう!

答えて

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

関連する問題