1

私の問題は、リストビューをスクロールしているときに convertView が間違っていることですが、位置は正しいです。

Listview に 3 つの項目があり、読み込み時に 'position' パラメータがインデックス'0'で呼び出され、 convertView がnullです。

1つずつスクロールすると、次のアイテムの「位置」は「1」で、convertViewもnullです。

問題は項目 3 にあります。「位置」は「2」ですが、「convertView」はnull ではなく、最初の項目 convertViewによって入力されます。

何故ですか ?

 public View getView(final int position, View convertView, ViewGroup parent) {
        View itemView = convertView;
        if (itemView == null) {
            itemView = getLayoutInflater().inflate(R.layout.post_layout, parent, false);

            postViewHolder                              = new PostViewHolder();
            postViewHolder.commentsImageButton          = (ImageButton) itemView.findViewById(R.id.postAddCommentsImageButton);

            itemView.setTag(postViewHolder);
        }else{
            postViewHolder = (PostViewHolder) itemView.getTag();
        }

}

4

2 に答える 2

0

これを試して

public View getView(final int position, View convertView, ViewGroup parent) {
        View itemView = convertView;
        PostViewHolder postViewHolder = null;
        if (itemView == null) {
            itemView = getLayoutInflater().inflate(R.layout.post_layout, parent, false);
            postViewHolder                              = new PostViewHolder();
            postViewHolder.commentsImageButton          = (ImageButton) itemView.findViewById(R.id.postAddCommentsImageButton);

            itemView.setTag(postViewHolder);
        }else{
            postViewHolder = (PostViewHolder) itemView.getTag();
        }
        postViewHolder.position    = position;
        :do your stuff with postViewHolder
        :
        return itemView;
}
于 2014-07-22T08:54:44.120 に答える