Я пытаюсь notifydatasetchanged, когда я закончил редактировать текст редактирования в recyclerview (почему? Потому что некоторые другие объекты в recyclerview доступны, только если для примера текст редактирования равен «test»).Android - notifyDataSetChanged, когда я закончил редактировать editText
Так что есть адаптер со многими зрения держателей, вот один для редактирования текста:
public EditTextViewHolder(View itemView, final Activity activity, final Context context, final String param) {
super(itemView);
this.activity = activity;
this.context = context;
this.param = param;
name = (TextView) itemView.findViewById(R.id.tEditTextName);
desc = (TextView) itemView.findViewById(R.id.tEditTextDescription);
details = (TextView) itemView.findViewById(R.id.tEditTextMoreDetails);
editText = (EditText) itemView.findViewById(R.id.eEditTextValue);
image = (ImageView) itemView.findViewById(R.id.iEditTextImage);
lMain = (LinearLayout) itemView.findViewById(R.id.layoutTaskEditText);
lOptional = (LinearLayout) itemView.findViewById(R.id.layoutEditTextOptional);
lRequired = (LinearLayout) itemView.findViewById(R.id.isRequiredTask);
}
public void setLayout(final Content content) {
name.setText(content.getTitle());
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
content.getAnswers().get(0).setValue(s.toString().trim());
}
});
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus)
TaskActivity.sAdapter.notifyDataSetChanged();
}
});
}
Но я получаю сообщение об ошибке «Не удается вызвать этот метод в то время как RecyclerView является вычисление макета или прокрутка» даже если я пытаюсь уведомить об этом в обработчике или в нити ui, он не работает.
Он работает со всеми моими держателями. Знаете ли вы, что я делаю неправильно с редактированием текста?
Эй, я попытался это решение еще раз, чтобы быть уверенным, но это определенно не работает я до сих пор «не удается вызвать этот метод то время как RecyclerView вычисляет макет или прокрутку ». У меня есть много держателей для просмотра в разных файлах, поэтому я получаю свой адаптер за счет активности, когда адаптер является общедоступным. –
Можете ли вы разместить больше своего кода. Также, где вы вызываете метод setLayout? –
setLayout (имя может быть не подходит) вызывается из функции onbind адаптера. Я также использую getItemType –