Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用RecyclerView中的EditText值保存回收器视图项目中的多个复选框选择_Android_Android Recyclerview_Android Studio 3.0_Floating Action Button_Multipleselection - Fatal编程技术网

Android 使用RecyclerView中的EditText值保存回收器视图项目中的多个复选框选择

Android 使用RecyclerView中的EditText值保存回收器视图项目中的多个复选框选择,android,android-recyclerview,android-studio-3.0,floating-action-button,multipleselection,Android,Android Recyclerview,Android Studio 3.0,Floating Action Button,Multipleselection,我已在recyclerView中呈现了项目列表。单击浮动操作按钮时,我希望传递已选择的项目以及它们在EditText中输入的数量。有人能给我举个例子吗?使用编辑文本文本更改侦听器获取值并将值存储为数组 class MyViewHolder extends RecyclerView.ViewHolder{ protected EditText editText; public MyViewHolder(View itemView) { super(itemView); edi


我已在
recyclerView
中呈现了项目列表。单击浮动操作按钮时,我希望传递已选择的项目以及它们在
EditText
中输入的数量。有人能给我举个例子吗?

使用编辑文本文本更改侦听器获取值并将值存储为数组

class MyViewHolder extends RecyclerView.ViewHolder{

protected EditText editText;

public MyViewHolder(View itemView) {
    super(itemView);

    editText = (EditText) itemView.findViewById(R.id.editid);

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

              editModelArrayList.get(getAdapterPosition()).setEditTextValue(editText.getText().toString());
        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });

}

您可以通过在模型类中使用一些额外的变量来实现这一点

For example:-
class Model{
   private boolean isChecked; // for checkbox click set this to true and notifyDataSetChanged()
   private String editTextValue:  // call text watcher with editext change and set this variable after every text change in edit text
}
视图持有者类别:-

class MyViewHolder extends RecyclerView.ViewHolder{

    protected EditText editText;
    protected CheckBox checkBox;


    public MyViewHolder(View itemView) {
        super(itemView);
editText = (EditText) itemView.findViewById(R.id.editid);
checkBox = (CheckBox) itemView.findViewById(R.id.checkbox);

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

          editModelArrayList.get(getAdapterPosition()).setEditTextValue(editText.getText().toString());
    }

    @Override
    public void afterTextChanged(Editable editable) {

    }
});

checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
        if (isChecked) {
            editModelArrayList.get(getAdapterPosition()).setChecked(true);
            } else {
 editModelArrayList.get(getAdapterPosition()).setChecked(false);
            }
        });

}
代码中的所有这些解释都在适配器内部执行,然后在执行fab按钮的onClick()时通过getter方法访问这些变量。 例如:-

void onFabButtonClick(View v){
        for(Object ob: yourList){
                if(ob.isChecked())
                    { // store checked data here in any list and pass any where you want
}
    }
// pass data from here after store
}

请共享代码可能重复的代码。它不仅仅保存editText。它还保存多个editText以及选定的项目。请将您的实现与示例应用程序共享