私はカスタムアレイアダプタでリストビューを持っています。 getViewメソッドから項目をクリックしたいのですが。私はいくつかのリストビューアイテムの位置を取得していますが、私は私のリストに7つ以上の項目を追加するとき、私はgetViewメソッドから間違った位置を取得します。私は第九リスト項目をクリックしたとき、それはここでは1カスタムビューアがListViewのgetView metodで間違った位置に表示される
を返す意味することは、私のコードは、任意のヘルプ
@Override
public View getView(int pos, View convertView, ViewGroup parent) {
this.position = pos;
Log.v("View position", Integer.toString(pos));
lineView = convertView;
if(lineView==null)
{
adapterLine=new AdapterLine();
layoutInflater=context.getLayoutInflater();
lineView=layoutInflater.inflate(com.inomera.sanalmarket.main.R.layout.adapter, null,true);
adapterLine.sListText = (TextView) lineView.findViewById(R.id.sListText);
adapterLine.sListCheckbox = (CheckBox) lineView.findViewById(R.id.sListCheckbox);
adapterLine.sListImageView = (ImageView) lineView.findViewById(R.id.imageView1);
adapterLine.gestureOverlayView = (GestureOverlayView) lineView.findViewById(com.inomera.sanalmarket.main.R.id.gestureOverlayView1);
adapterLine.gestureOverlayView.setGestureVisible(false);
// To remember whitch tab is selected
adapterLine.sListImageView.setTag(pos);
adapterLine.sListCheckbox.setTag(pos);
adapterLine.sListText.setTag(pos);
Log.v("adapter", "position of adapter is " + Integer.toString(pos));
感謝です!
をつまずいた場合には答えています。 \t \t \t}他{ \t \t \t \t adapterLine =(AdapterLine)lineView.getTag(); \t \t \tでも同じ問題が発生する – cagryInside
解決策はそれほど簡単ではありません。この作業を行うには、ViewHolderパターンに完全に従う必要があります。あなたのコメントに応じて、ユーザーがリストをスクロールするたびに、各行に適切な行番号がタグ付けされるように、elseにsetTagを設定する必要があります。しかし、この例に従うことをお勧めします。 – paulb444