Адаптер Android RecyclerView вызывается (на мой взгляд) случайным образомAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Адаптер Android RecyclerView вызывается (на мой взгляд) случайным образом

Сообщение Anonymous »

Вот моя ситуация: у меня есть ListView (я передам его в RecyclerView как можно скорее), заполненный ArrayAdapter, который работает безупречно. Каждый item_main имеет Grid, который содержит 0x0 ImageView, 0x1 TextView, 1x0/1 Fragment, с setVisibility Gone, переключенным на VISIBLE «стандартным» OnClickListener.
Один из этих элементов имеет динамический фрагмент, я вызываю его класс с помощью прослушивателя, возможно, это ошибка.
Проблема в том, что фрагмент содержит представление RecyclerView, которое имеет различные item_hours, содержащие TablerRow и 5 TextView. Практически я заполняю таблицу часов рынка; класс Fragment вызывается "правильно" при каждом касании item_main, но его метод onBindViewHolder вызывается один раз по 10 раз (на мой взгляд) случайным образом.
Я делаю черновик стало лучше:

ListView: 4x item_main //

item_main => сетка => изображение, текст, фрагмент //

этот фрагмент => Recyclerview => TableRow => text, text, text, text,text //

Вызов адаптера RecyclerView случайным образом
Вот коды и журнал:
OnClickListener (метод ItemAdapterMain.class)
case hours:
HoursFragment hoursFragment = new HoursFragment();
FragmentManager fragmentManager = ((Activity) context).getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_hours, hoursFragment);
fragmentTransaction.commit();
setVisible(2);
s = "hours"; // for Log only
break;


HoursFragment.class
public class HoursFragment extends android.app.Fragment {

private static final String TAG = "com.forface.luxurymom";

private Context context;

private final String _10_30 = "10:30";
private final String _13 = "13:00";
private final String _15_30 = "15:30";
private final String _16 = "16:00";
private final String _20 = "20:00";

List dayList;
private Day mon, tue, wen, thu, fri, sat, sun;

public HoursFragment() {
// Required empty public constructor
}
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
context = container.getContext();

View view = inflater.inflate(R.layout.fragment_hours, container, false);

mon = new Day("mon",_15_30,_20);
tue = new Day("tue",_10_30,_13, _15_30,_20);
wen = new Day("wen",_10_30,_13, _15_30,_20);
thu = new Day("thu",_10_30,_13, _15_30,_20);
fri = new Day("fri",_10_30,_13, _15_30,_20);
sat = new Day("sat",_10_30,_13, _15_30,_20);
sun = new Day("sun",_16,_20);

dayList = new LinkedList();
dayList.add(mon);
dayList.add(tue);
dayList.add(wen);
dayList.add(thu);
dayList.add(fri);
dayList.add(sat);
dayList.add(sun);

Log.i(TAG, "Call ItemAdapterHours"); /////////////////////////////////////////////////////// LOG CALL ADAPTER

RecyclerView hoursRecyclerView = (RecyclerView) view.findViewById(R.id.hours_recycler_view);
ItemAdapterHours adapter = new ItemAdapterHours(getActivity(), dayList);
hoursRecyclerView.setAdapter(adapter);
LinearLayoutManager llm = new LinearLayoutManager(getActivity());
llm.setOrientation(LinearLayoutManager.HORIZONTAL);
hoursRecyclerView.setLayoutManager(llm);

return view;
}
}

ItemAdapterHours.class
public class ItemAdapterHours extends RecyclerView.Adapter{

private static final String TAG = "com.forface.luxurymom";

private final int call = R.id.main_call;
private final int write = R.id.main_write;
private final int hours = R.id.main_hours;
private final int map = R.id.main_map;

private List dayList;

Context context;

public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView itemDay;
public TextView itemOpen;
public TextView itemPauseStart;
public TextView itemPauseEnd;
public TextView itemClose;

public MyViewHolder(View view) {
super(view);
itemDay = (TextView)view.findViewById(R.id.hours_item_day);
itemOpen = (TextView)view.findViewById(R.id.hours_item_open);
itemPauseStart = (TextView)view.findViewById(R.id.hours_item_pause_start);
itemPauseEnd = (TextView)view.findViewById(R.id.hours_item_Pause_end);
itemClose = (TextView)view.findViewById(R.id.hours_item_cose);
}
}

public ItemAdapterHours (Context context, List mDayList){
Log.i(TAG, "ItemAdapterHours call received"); ////////////////////////////////////////////// LOG CALL RECEIVED
this.context = context;
Activity activity = (Activity) context;
dayList = mDayList;
}

public void onBindViewHolder(MyViewHolder holder, int position) {
Log.i(TAG, "ItemAdapterHours started"); //////////////////////////////////////////////////// LOG STARTED
Day item = dayList.get(position);

holder.itemDay.setText(item.getName());
if (item.openTime() != null)
holder.itemOpen.setText(item.openTime().toString());
if (item.pauseStartTime() != null)
holder.itemPauseStart.setText(item.pauseStartTime().toString());
holder.itemPauseEnd.setText(item.pauseEndTime().toString());
holder.itemClose.setText(item.closeTime().toString());
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int position) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_hours,parent, false);
return new MyViewHolder(v);
}

@Override
public int getItemCount() {
return dayList.size();
}
}

ЖУРНАЛ
11-07 15:43:27.466 : ItemAdapterHours call received
11-07 15:43:27.947 : Call ItemAdapterHours
11-07 15:43:27.947 : ItemAdapterHours call received
11-07 15:43:28.355 : Call ItemAdapterHours
11-07 15:43:28.355 : ItemAdapterHours call received
11-07 15:43:28.791 : Call ItemAdapterHours
11-07 15:43:28.791 : ItemAdapterHours call received
11-07 15:43:29.197 : Call ItemAdapterHours
11-07 15:43:29.197 : ItemAdapterHours call received
11-07 15:43:29.647 : Call ItemAdapterHours
11-07 15:43:29.647 : ItemAdapterHours call received
11-07 15:43:30.044 : Call ItemAdapterHours
11-07 15:43:30.044 : ItemAdapterHours call received
11-07 15:43:30.045 : Call ItemAdapterHours
11-07 15:43:30.045 : ItemAdapterHours call received
11-07 15:43:30.446 : Call ItemAdapterHours
11-07 15:43:30.446 : ItemAdapterHours call received
{......}
11-07 15:43:36.240 : Call ItemAdapterHours
11-07 15:43:36.240 : ItemAdapterHours call received
11-07 15:43:37.088 : Call ItemAdapterHours
11-07 15:43:37.088 : ItemAdapterHours call received
11-07 15:43:37.088 : Call ItemAdapterHours
11-07 15:43:37.088 : ItemAdapterHours call received
11-07 15:43:37.238 : ItemAdapterHours started
11-07 15:43:37.239 : ItemAdapterHours started
11-07 15:43:37.648 : Call ItemAdapterHours
11-07 15:43:37.648 : ItemAdapterHours call received
11-07 15:43:37.648 : Call ItemAdapterHours
11-07 15:43:37.648 : ItemAdapterHours call received
11-07 15:43:37.792 : ItemAdapterHours started
11-07 15:43:37.793 : ItemAdapterHours started
11-07 15:43:38.215 : Call ItemAdapterHours
11-07 15:43:38.215 : ItemAdapterHours call received
11-07 15:43:38.216 : Call ItemAdapterHours
11-07 15:43:38.216 : ItemAdapterHours call received
11-07 15:43:38.344 : ItemAdapterHours started
11-07 15:43:38.346 : ItemAdapterHours started


Подробнее здесь: https://stackoverflow.com/questions/404 ... w-randomly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»