Сохранить множественный флажок выбора в элементе просмотра переработчика со значением EditText в RecyclerView - PullRequest
0 голосов
/ 28 января 2019

this is my activity*strong text*

Я отобразил список элементов в recyclerView.Когда я нажал кнопку «Плавающее действие», я хочу передать выбранные элементы вместе с количеством, которое они ввели в EditText.Может ли кто-нибудь дать мне пример

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Вы можете сделать это, используя некоторые дополнительные переменные в классе модели

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
}

Класс View Holder: -

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

}

Все эти объяснения в коде выполняются внутри адаптера, а затем открываютсяэти переменные методами getter во время onClick () потрясающей кнопки.Например: -

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
}
0 голосов
/ 28 января 2019

Использование редактируемого текста измененного прослушивателя для получения значений и сохранения значений в виде массива.

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

        }
    });

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...