私は画像のようなカスタム項目と線形レイアウトがあります。アンドロイドの直線レイアウトからchildviewアイテムにアクセスする方法は?
Webサービスによって満たされ、どのように私はonclick
とonchecked
を実行するためにtextview
「削除」のラジオボタンへのアクセスを獲得しますリスナー?
私のアクティビティは、Webサービスのデータの読み込みを開始し、Webサービスから取得するすべてのレスポンスのリニアレイアウト "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;
}
パーサ
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からのデータを表示します"削除"をしたいNDのparam
Card card = new Card(),
id = card.getid()
を渡すとHTTP POSTを実行し、TextViewのラジオボタンでメソッド「デフォルトを選択」、しかし、私はそれを実行するために、子のTextViewやラジオボタンにアクセス傾けます。
関連するコードを追加してください。 –
'ListView'を使用できない理由はありますか? – jaibatrik
ラジオボタンを変更してスクロールすると、チェック値(リサイクル)が失われ、Linearlayoutでその問題が発生しないので、リストビューを使用しません。 –