2015-10-30 3 views
0

Я хочу обновить значение текстового вида элемента адаптера recyclerview динамически с помощью некоторых данных.Как получить не сфокусированный элемент recyclerview с использованием позиции android

Для этого я делаю так:

View mRecyclerView = linearLayoutManager.getChildAt(viewPosition); 

       TextView textView=(TextView) mRecyclerView.findViewById(R.id.text_number); 
       Integer chatCount = Integer.parseInt(textView.getText().toString()); 
       chatCount++; 
       textView.setText(chatCount + ""); 
       jobsFragmentRecyclerViewAdapter.notifyItemChanged(viewPosition); 

Но выше кодирование работает только для видимых взглядов на экране, для взглядов, которые не видны я получаю исключения нулевого указателя для mRecyclerView может кто-нибудь поможет мне о том, как получить элемент recyclerview, который не находится в фокусе

заранее спасибо

ответ

0

Где-то в вашем коде, вы должны иметь adapter, заполняющий данные о RecyclerView. То, что adapter имеет способ, называемый onBindViewHolder(), который заполняет каждый ViewHolder. Вот где вы должны указывать, как выглядят каждый viewholder.

Например: у вас может быть список строк (по одному для каждого зрителя). onBindViewHolder взял бы один String и установил бы текст TextView как строку String. Таким образом, изменение одной строки этого списка (и вызова notifyItemChanged()) было бы достаточно

+0

Спасибо, пелохо для ответа. Решение, которое вы предоставили, предназначено для начальной настройки данных в адаптере. Но я хочу, чтобы динамически обновлять элемент адаптера (исключительно), указав свою позицию линейному_университету (который управляет им) или recyclerview (который его удерживает). Но все методы getChildView (позиция) и т. д., которые возвращают видимый дочерний элемент. Я хочу, чтобы представление не было в фокусе, указав индекс. Надеюсь, вы ясно поняли мой вопрос. – Manikanta

+0

Да, да. Решение, которое я дал, также предназначено для первоначальной настройки и обновления элементов. Обновите источник данных и вызовите 'notifyItemChanged()' (или 'notifyDataSetChanged()', если вы хотите обновить все) – Pelocho

Смежные вопросы