Не обнаруживает значения невидимого элемента, если он находится в горизонтальном представлении - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть элементы прокрутки по горизонтали от воскресенья до субботы с флажками, в мобильном представлении показывается воскресенье по субботу, если я прокручиваю, а если не прокручиваю, то показывает воскресенье до среды,

подходит к моменту обновления моя подписка принимает значения от воскресенья до среды, остальные значения не приходят, они приходят как нули, что мне делать?

вот мой adapterclass код:

public class SubscriptionRecyclerViewAdapter extends RecyclerView.Adapter<SubscriptionRecyclerViewAdapter.MyViewHolder> {

private List<DaysOfDelivery> daysOfDeliveryList;
 public static String[] daylist;


public class MyViewHolder extends RecyclerView.ViewHolder {
    CheckBox checkBox;
    TextView textViewPrice;

    public MyViewHolder(View view) {
        super(view);
        checkBox = (CheckBox) view.findViewById(R.id.deliveryname_checkbox);
        textViewPrice = (TextView) view.findViewById(R.id.period_price);
    }
}


public SubscriptionRecyclerViewAdapter(List<DaysOfDelivery> daysDeliveryList) {
    this.daysOfDeliveryList = daysDeliveryList;
    daylist = new String[daysOfDeliveryList.size()];

}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.horizontal_listview_availability, parent, false);

    return new MyViewHolder(itemView);
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    DaysOfDelivery days = daysOfDeliveryList.get(position);
    holder.checkBox.setText(days.getAvailabilityDays());
    holder.checkBox.setChecked(days.getCheckbox());
    holder.textViewPrice.setText(days.getPrice());
    if (days.getCheckbox())
        daylist[position]="1";
    else
        daylist[position]="0";

}

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

}

и моя функциональность обновления класса активности:

update1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String[] days= SubscriptionRecyclerViewAdapter.daylist;

            if(isConnected)
                new EditSubscription().execute();
            else
                Toast.makeText(Subscription.this, "No Internet Connection", Toast.LENGTH_LONG).show();
        }
    });

в дни, когда я получаю только воскресенье к значениям среды, остальные не приходят

1 Ответ

0 голосов
/ 09 апреля 2020

поддерживает массив daylist в вашем activity/fragment, и, когда вы хотите обновить этот список из адаптера, используйте обратный вызов для обновления.

В recyclerView представления, которые не видны на экране, не инициализируются пока они не появятся на экране.

ИЛИ также инициализировать этот список в конструкторе:

public SubscriptionRecyclerViewAdapter(List<DaysOfDelivery> daysDeliveryList) {
    this.daysOfDeliveryList = daysDeliveryList;
    daylist = new String[daysOfDeliveryList.size()];

    for (int i = 0; i < daysDeliveryList.size(); i++) {
        daylist[i] = daysDeliveryList.get(i).getCheckbox() ? "1" : "0";
    }

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