Доброго дня,Android вызова findViewById от адаптера пользовательского класса
Поэтому у меня есть пользовательский элемент управления ListView с пользовательским адаптером, который имеет элемент, который является флажком для каждой строки. В моем getView я применил setOnCheckedChangeListener и обработчики onCheckedChanged для моего флажка.
Теперь проблема:
Всякий раз, когда я проверяю/снимите один из элементов списка, я хотел бы обновить внешний TextView со значениями, я хочу (предположим, что для каждого элемента есть цена связана с тем Я хочу показать ниже списка общую цену).
Как мне добраться до «внешнего» вида с помощью getView адаптера? Какой еще обходной путь?
Я оставляю здесь какую-то часть моего кода на функции GetView моего пользовательского адаптера:
CheckBox name = (CheckBox) view.findViewById(R.id.product);
name.setText(content[i][0]);
final View v = view;
final int position = i;
name.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton group, boolean isChecked) {
setCheckedItem(position);
EditText quantity = (EditText) v.findViewById(R.id.product_quantity);
content[position][3] = quantity.getText().toString();
Iterator<String> it = getCheckedItems().values().iterator();
Double total = 0.0;
for (int i=0;i<getCheckedItems().size();i++){
Integer quantity_p = Integer.parseInt(getItem(position)[3]);
Double price = Double.parseDouble(getItem(position)[2]);
total += quantity_p*price;
}
TextView total_price = (TextView) findViewById(R.id.total_products_price);
total_price.setText(total.toString());
}
});
Обратите внимание, что последние две строки: Я знаю, что я не могу назвать findViewById, но я не знаю, что делать к настоящему времени. Любые предложения были бы хорошими, спасибо.
можете разместить здесь свой код класса и xml-файл? –
введите класс адаптера в класс активности. –