У меня есть линейное расположение с настраиваемыми элементами, как изображение:Как получить доступ к элементам childview из линейной очереди в android?
, которая заполнена WebService, как я могу получить доступ к «удалить» textview
и радио-кнопки для выполнения onclick
и onchecked
слушатели?
Моя активность начинает загружать данные веб-службы и помещает линейный макет «n» дочерних элементов каждого ответа, который поступает из веб-службы, я хочу включить клик и проверил слушателей в зависимости от положения ребенка в Посмотреть список.
Thnx.
Адаптер.
public class NewPaymentsAdapter extends ArrayAdapter<Payments> {
private ViewHolder holder;
public NewPaymentsAdapter(Context context, ArrayList<Payments> newpayments) {
super(context, 0, newpayments);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final Payments payments = getItem(position);
if (convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(R.layout.new_payments_item, parent, false);
holder = new ViewHolder();
holder.rbPayments = (RadioButton) convertView.findViewById(R.id.rbPayments);
holder.tvPaymentsDelete = (MyTitleFontTextView) convertView.findViewById(R.id.tvPaymentsDelete);
holder.tvPaymentsTitle = (MyTitleFontTextView) convertView.findViewById(R.id.tvPaymentsTitle);
holder.tvPaymentsDesc = (MyFontTextView) convertView.findViewById(R.id.tvPaymentsDesc);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.tvPaymentsTitle.setText("Tarjeta");
holder.tvPaymentsDesc.setText("**** **** **** " + payments.getLastfour());
if (Boolean.parseBoolean(payments.getIsdefault()) == true){
holder.rbPayments.setChecked(true);
} else {
holder.rbPayments.setChecked(false);
}
return convertView;
}
private class ViewHolder {
RadioButton rbPayments;
MyTitleFontTextView tvPaymentsDelete, tvPaymentsTitle;
MyFontTextView tvPaymentsDesc;
}
Parser
public ArrayList<Payments> parseNewPayments(String response, ArrayList<Payments> list) {
try {
JSONObject jsonObject = new JSONObject(response);
if (jsonObject.getBoolean(KEY_SUCCESS)) {
JSONArray jsonArray = jsonObject.getJSONArray("payments");
if (jsonArray.length() > 0) {
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject object = jsonArray.getJSONObject(i);
Payments newpayments = new Payments();
newpayments.setId(object.getInt("id"));
newpayments.setLastfour(object.getString("last_four"));
newpayments.setIsdefault(object.getString("is_default"));
list.add(newpayments);
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return list;
}
Модель
public class Payments {
private int id;
private String isdefault, lastfour;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLastfour() {
return lastfour;
}
public void setLastfour(String lastfour) {
this.lastfour = lastfour;
}
public String getIsdefault() {
return isdefault;
}
public void setIsdefault(String isdefault) {
this.isdefault = isdefault;
}
}
активность
this.pContent.parseNewPayments(response, newPaymentsList);
newPaymentsAdapter.notifyDataSetChanged();
adaptercount = Integer.valueOf(newPaymentsAdapter.getCount());
for (int i = 0; i < adaptercount; i++) {
View item = newPaymentsAdapter.getView(i, null, null);
layNewPayments.addView(item);
}
Вот мой код, дисплеи деятельности правильно данные с WS, теперь с этим я хотите сделать «удалить» й «выберите по умолчанию» метод с TextView и радио-кнопки, передавая из параметров
Card card = new Card(),
id = card.getid()
и выполнение POST HTTP, но я не могу получить доступ к кнопке ребенок TextView или радио, чтобы выполнить это.
Пожалуйста, добавьте соответствующий код. –
Есть ли причина, по которой «ListView» не может быть использован? – jaibatrik
Я не использую listview, потому что, когда я делаю изменение в переключателе, а затем прокручиваю его, он потерял проверенное значение (перерабатывает), а с Linearlayout у меня нет этой проблемы –