(私はすでにこの同様の質問を見ました)私はListView
カスタムアダプタを書いたforとを持っていonitemclicklistener
ます。リストのいずれかの要素が選択されると、それらの要素が表示されていなくてもgetView
、の上位4つの要素のそれぞれに対して(2回)呼び出されるという問題ListView
があります。これは、アダプターを呼び出さなくても発生しnotifyDataSetChanged
ます。最初の4つのビューは、関係なく2回フェッチされます。これは正常な動作ですか?私の問題は、2回呼び出されることではなく、更新する必要がないときにまったく呼び出されることです。
ちなみに、私はリストビューの高さまたは幅にwrap_contentを使用していません。高さはmatch_parentで、幅は固定数のdpです。
onItemClick()
OnItemClickListenerのメソッドは次のとおりです。
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
mPicture = pictures[position];
mPicturesAdapter.setCurrentPicture(mPicture);
mPicturesAdapter.notifyDataSetChanged();
}
getView()
私のカスタムアダプタ(BaseAdapterを拡張する)からはここにあります:
public View getView(int position, View convertView, ViewGroup parent) {
Log.v("tag", "Getting view for position "+position);
LayoutInflater inflater = LayoutInflater.from(mContext);
LinearLayout layout = (LinearLayout)
inflater.inflate(R.layout.picture_thumbnail, parent, false);
// set up the linearlayout here ...
return layout;
}
アイテムがクリックされると、クリックされたアイテムに関係なく、位置0〜3に対してgetView()が2回呼び出されます。