2013-02-05 3 views
0

gridview 내부의 개별 항목에 액세스 할 때 문제가 있습니다. 이미지 격자보기가 있습니다. 개별 항목을 길게 누르면 멀티 모드 청취자와 함께 CAB 메뉴가 활성화됩니다. 청취자의 내부에서, 나는안드로이드에서 GridView 개별 항목에 액세스

gridView.setVisibility(View.GONE); 

을 할 수 있어요하지만이 작업을 수행 할 수없는이고 그것이 내가이 또한 시도

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; 
}}); 

, 난 그냥 온 클릭 배경색을 변경하고 싶습니다. 그러나 현재보기에서 마지막 요소에 대한 색이 변경됩니다. 또한 언론에 너무 머물러 있지도 않습니다. 언론이 끝나면 그냥 나옵니다.

답변

1

통지 시도 할 수 있습니다.

모든 항목에 고유 한보기가 있다고 가정하면 안됩니다. 어댑터는 일반적으로 스크롤 할 때 화면 밖으로 나가는 항목의보기를 재사용합니다.

+0

질문이 업데이트되었습니다. 내가 여기서하려고하는 것은 배경색을 onclick으로 변경하고 싶습니다. 그러나 현재보기에서 마지막 요소에 대한 색이 변경됩니다. 또한 언론에 너무 머물러 있지도 않습니다. 언론이 끝나면 그냥 나옵니다. – intrepidkarthi

0

당신은 당신의 데이터 어댑터를 백업 상태에 따라 표시 여부에보기를 설정해야 어댑터를 어댑터의 getView() 방법에서

if(gridChild.getChildAt(k) instanceof ImageView) { 

gridChild.getChildAt(k).setVisibility(View.GONE); 

notifyDataSetChanged(); 
} 
+0

시도했습니다. 작동 안함! – intrepidkarthi

관련 문제