私のリストビューのgetviewで私は別の変数に位置を割り当てています。 私のリスト内にチェックボックスがあります。アンドロイドのリストビュービューの位置を取得
私はcheckboxに対してsetOnCheckedChangeListenerを定義しました。
私はjusのチェック/チェックを外すと、getviewが呼び出されないことがわかります。 しかし、私はgetviewで設定されたpositionの値を使用して、適切な値を与えてくれます。
つまり、10番目の位置をクリックすると、その変数の変数も10になります。
どうか私に説明してください。
私のコードはここで私は、行10のチェックボックスをクリックするとgetViewメソッド 内の位置、oncheckchnagedリスナーが呼び出されますが、ないgetViewメソッド機能 が、私はその参照なっている= POSを設定しています
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
final int pos = position;
barcodeForSelectedRow = productList.get(pos).getBarcode();
formatForSelectedRow = productList.get(pos).getFormat();
if (convertView == null) {
convertView = mInflater.inflate(R.layout.product_list_row, null);
holder = new ViewHolder();
holder.text1 = (TextView) convertView.findViewById(R.id.productid);
holder.text2 = (TextView) convertView.findViewById(R.id.price);
holder.text2.setOnClickListener(listener);
holder.image = (ImageView) convertView
.findViewById(R.id.productimageid);
holder.check=(CheckBox) convertView.findViewById(R.id.checkbox);
convertView.setTag(holder);
holder.image.setOnClickListener(listener);
} else {
holder = (ViewHolder) convertView.getTag();
}
// setWishListItemsInScanList(pos, convertView);
holder.check.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton checkBox,
boolean isChecked) {
Log.i("CheckBox check", "" + pos);
});
return convertView;
}
を下回っていますonchechchangedlistenerで位置が正しく取得されています。 私はその出来事を知りました。
NB:期待通りの動作であるときはいつでもgetviewが呼び出されます。また、チェックボックスをクリックすると、getviewは呼び出されず、正常に動作しています。私の質問は、oncheckchangedlistenerがどのように正しく位置値を取得するかです。
このコードをすべて掲載するのではなく、関連する部分を抽出する必要があります。このプロセスでは、あなたは解決策を見つけるかもしれません... – Kheldar
あなたのコントロールはチェックボックスのonCheckedChange()に入っていません。 – Hiral
onCheckedChangedこのチェックボックスのステータスを変更すると、この関数が呼び出されます。あなたのgetViewメソッドではありません – Triode