グリッドビュー内の個々のアイテムにアクセスする際に問題が発生しています。画像のグリッドビューがあります。個々のアイテムを長押しすると、マルチモードリスナーでCABメニューがアクティブになります。リスナーの中で、私はすることができます
gridView.setVisibility(View.GONE);
しかし、私はこれを行うことができず、NUllPointerExceptionが発生します
gridView.getChildAt(position).setVisibility(View.GONE);
私もこれを試しました:
ViewGroup gridChild = (ViewGroup) gridView.getChildAt(1);
int childSize = gridChild.getChildCount();
for(int k = 0; k < childSize; k++) {
if( gridChild.getChildAt(k) instanceof ImageView ) {
gridChild.getChildAt(k).setVisibility(View.GONE);
}
}
どうすればこれを克服できますか?
アップデート:
アダプタのgetView()メソッド内:
imageview.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
overlay.setVisibility(View.VISIBLE);
imageview.setBackgroundColor(Color.parseColor("#f9a49c"));
return false;
}});
ここでやろうとしているのは、クリック時に背景色を変更したいだけです。ただし、現在のビューの最後の要素の色が変更されています。そして、それもプレス後にとどまらない。押すと消えます。