2012-08-13 2 views
0

안녕하세요. 부모 레이아웃에서drawable 객체가있는 뷰의 setOnClickListener

LinearLayout myLayout = (LinearLayout) mRoot.findViewById(R.id.bitmapBox); 
View view = new SandboxView(this.getActivity(), bitmap); 
myLayout.addView(view); 

나는 또한 수평있는 ScrollView를 가지고,하지만 난 그것을 볼 수 있도록하고 싶습니다 :

는 내가있는 LinearLayout bitmapBox있는 나는이 같은 SandboxView 클래스를 통해 드로어 블 오브젝트를 배치하고있어이 캔버스를 만져서 보이지 않게. 캔버스에 비트 맵을 보유하고

view.setOnClickListener(new OnClickListener() { 
int x = 0; 

@Override 
public void onClick(View view) { 
    HorizontalScrollView myLayout = (HorizontalScrollView) mRoot.findViewById(R.id.hide); 
    if (x == 0) { 
    myLayout.setVisibility(1); 
    myLayout.setVisibility(View.GONE); 
    x = 1; 
    } 

    else { 
    myLayout.setVisibility(View.VISIBLE); 
    x = 0; 
    } 
} 
}); 

은 "보기"가 아닌 객체를 :이 방법으로 그것을 어떻게하려고? 이것은 작동하지 않기 때문입니다. 어떤 제안이 onClick 수신기를 설정하기 위해 어떤 뷰를 사용할 지 모르겠습니다.

답변

0

레이아웃의 clickable 속성을 true로 설정했는지 확인하십시오.

귀하의 OnClickListener를 조금 정리 될 수
1

:

view.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View view) { 
     // no need to cast to horizontalscrollview here since we are just setting visibility which is available to anything extending the View class. 
     View mView = mRoot.findViewById(R.id.hide); 
     if (mView == null) { 
      return; // do nothing 
     } else if (mView.getVisibility() == View.GONE) { 
      mView.setVisibility(View.VISIBLE); 
     } else if (mView.getVisibility() == View.VISIBLE) { 
      mView.setVisibility(View.GONE); 
     } 
    } 
}); 
관련 문제