SwitchCompat в ListView, чтобы сделать сетевой вызов - PullRequest
0 голосов
/ 06 мая 2018

У меня SwitchCompat внутри элемента listView, я хочу, чтобы это состояние SwitchCompat отправлялось в мою удаленную базу данных каждый раз, когда я меняю его ВКЛ / ВЫКЛ для определенного элемента, я пытался поместить этот сетевой вызов в адаптер, но получил Исключение: NetworkOnMainThreadException

любая помощь?

Я использую Retrofit для сетевого вызова

Мой адаптер

Adapter.java

public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    ExpensesHolder holder = null;
    if (row == null) {
        LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);
        holder = new ExpensesHolder();
        ...
        row.setTag(holder);

    } else {
        holder = (ExpensesHolder) row.getTag();
    }
    holder.switchExpenses.setTag(position);
    ...
    if (flag.equals("unselected")) {
        holder.switchExpenses.setChecked(false);

    } else {
        holder.switchExpenses.setChecked(true);

    }
    if (TextUtils.isEmpty(expName)) {
        // want to make network call here
        }




    return row;

}

1 Ответ

0 голосов
/ 06 мая 2018

Возможно, вы звоните call.execute(), чтобы исключить использование NetworkOnMainThreadException call.enqueue(listener)

...