my cardviewは名前、製品、コード、数量、合計などのtextviewsやedittextsで構成されています。ボタンをクリック(または+アイコンをクリック)すると、新しいカードが表示されるようなリサイクラビューで表示されます。下の最終ボタンをクリックすると、すべてのカードの編集テキストの値がすべてアレイリストに保存されます。私はそれをどうやってするのか非常に混乱しています。私が見るすべてのチュートリアルでは、いずれかのデータベースから解析または値を取っているが、新しいボタンをクリックしたときに作成されるだけでなく、ユーザーおよびストアから値を取得するように私のcardviewをしたい。リサイクラービューでは、ボタンやアイコンをクリックするたびに新しいカードを作成するにはどうすればいいですか?
0
A
答えて
0
あなたのCardViewでレイアウトファイルmy_card_view_item.xmlを作成し、このようなあなたのRecyclerView用のアダプタを定義します。
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
List<String> myList;
public MyAdapter(List<String> myList) {
this.myList = myList;
}
public void addItem() {
myList.add(new String());
notifyItemInserted(myList.size() - 1);
}
@Override
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_card_view_item, parent, false);
return new MyViewHolder(v);
}
@Override
public void onBindViewHolder(MyAdapter.MyViewHolder holder, int position) {
// bind your view
holder.editText.setText(myList.get(position));
}
@Override
public int getItemCount() {
return myList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
EditText editText;
Button btn_remove;
public MyViewHolder(View itemView) {
super(itemView);
editText = (EditText) itemView.findViewById(R.id.editText);
btn_remove = (Button) itemView.findViewById(R.id.btn_remove);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
myList.set(getAdapterPosition(), charSequence.toString());
}
@Override
public void afterTextChanged(Editable editable) {
}
});
btn_remove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myList.remove(getAdapterPosition());
notifyItemRemoved(getAdapterPosition());
notifyItemRangeChanged(getAdapterPosition(), myList.size());
}
});
}
}
}
あなたはユーザが入力したデータを保存し、失われたデータやデータの衝突を防ぐためにonBindViewHolder
方法でそれを表示する必要があります。
アダプタのインスタンスを作成し、RecyclerViewに設定します。 今すぐあなたの+ボタンのOnClickListener
イベントで、addItem
方法あなたのアダプタを呼び出す:あなたはすべてのカードのEditTextの値を取得し、配列に格納することができます
btn_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
adapter.addItem();
}
});
Finaly:
良いbtn_final.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < adapter.getItemCount(); i++) {
EditText et = (EditText) recyclerView.getLayoutManager().findViewByPosition(i).findViewById(R.id.edit_text);
// Store et.getText() in your array
}
}
});
関連する問題
- 1. ボタン(js)をクリックして新しいカードを作成するにはどうすればよいですか?
- 2. 別のボタンをクリックして新しいボタンを作成するにはどうすればいいですか
- 3. CSS:iOSアイコンに似た反射光でボタンを作成するにはどうすればいいですか?
- 4. ボタンを押すたびに新しいテキストビューを追加するにはどうすればよいですか?
- 5. VSTOアドインを呼び出すためのボタンを作成するにはどうすればいいですか?
- 6. ボタンをクリックして開くポップアップを作成するにはどうすればいいですか(Angularjs)
- 7. ボタンのカスタムシェイプを作成するにはどうすればいいですか?
- 8. POST/PUTアイコンを作成するにはどうすればよいですか?
- 9. dataBinding(google)を通じてリサイクラービューのアダプターを作成するにはどうすればいいですか?
- 10. 作成したカードをクリックしてカード内の入力フィールドを作成するにはどうすればよいですか?
- 11. ボタンをクリックしたように見えるようにするにはどうすればいいですか?
- 12. ボタンをクリックするたびにラベルに+1を追加するにはどうすればよいですか?
- 13. Flash CS3のボタンで新しいSTATEを作成するにはどうすればよいですか?
- 14. Googleマップapi v3でクリック可能なアイコンを作成するにはどうすればよいですか?
- 15. 丸みを帯びたコーナーやドロップシャドウでステージを作成するにはどうすればよいですか?
- 16. ボタンをクリックするたびにAdmobインタースティシャルを表示するにはどうすればよいですか?
- 17. パイゲームのボタンを作成してイメージを更新するにはどうすればいいですか?
- 18. ボタンを複数回クリックするにはどうすればいいですか?
- 19. プログラムでボタンを作成するにはどうすればよいですか?
- 20. 新しいHighchartチャートを作成するにはどうすればいいですか?jqueryではなく新しいHighchartチャートを作成するには?
- 21. サービス参照を更新するたびにVS2010が新しいバインディングを作成しないようにするにはどうすればよいですか?
- 22. 新しいレールアプリを作成するたびに、自動的にそこに新しい宝石を含めるにはどうすればいいですか?
- 23. ユーザーがラケットでクリックした後にボタンを無効にするにはどうすればいいですか?
- 24. ボタンをMVCビューでクリックした後に非表示にするにはどうすればいいですか?
- 25. クリック&ペーストボタンを作成するにはどうすればよいですか?
- 26. UIKitで作成したコントロールをすばやく配置するにはどうすればよいですか?
- 27. ボタンをクリックした後に送信ボタンを無効にするにはどうすればよいですか?
- 28. JavaScriptでクリックできないボタンをクリックするにはどうすればいいですか?
- 29. 詳細については、カードをクリックしていますか、ボタンやテキストがあるはずですか?
- 30. 「再生」ボタンを作成するにはどうすればよいですか?
、それ工assは何ですか?なぜあなたはそれのための配列リストを作成したのですか? – Robin10
getItemcount()の実行後にNULLポインタ例外が表示される – Robin10
ビューにデータをバインドする必要がない場合は、リストを削除し、ItemCountとしてint型変数のみを使用してaddItemを増やすことができます。 – SiSa