2013-01-13 4 views
0

체크라고하는 버튼이 있습니다. 클릭 할 때마다 보이지 않게 보이게하고 싶을 때처럼 보이게하고 클릭하면 보이지 않게됩니다!버튼 가시성을 변경하는 중 오류가 발생했습니다.

하지만 내 코드가 작동하지 않습니다! 어떤 아이디어? 내 활동에

Button Check ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.settings); Check = (Button)findViewById(R.id.checkButton); Check.setOnClickListener(new OnClickListener() { @Override public void onClick(View View) { if (View.getVisibility() == android.view.View.VISIBLE) View.setVisibility(android.view.View.INVISIBLE); else if (View.getVisibility() == android.view.View.INVISIBLE) View.setVisibility(android.view.View.VISIBLE); } }); 
는 처음에 볼 수와 나는 그것을 클릭하면, 그것은 보이지 않게,하지만 내가 클릭하면 다시는 보이지 유지!

+0

오류 로그를 추가 할 수 있습니까? 또는 작동하지 않는 것을 지정하십시오. –

+0

편집 됨 점검하십시오 –

답변

1

이 시도 :

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:onClick="abcd" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:onClick="abc" 
     android:text="Button" /> 
</LinearLayout> 



public void abc(View v) { 
    v.setVisibility(View.INVISIBLE); 
} 

public void abcd(View v) { 
    v.findViewById(R.id.button1).setVisibility(View.VISIBLE); 
} 

보이지 않는 항목 이벤트를하는 클릭받지 않습니다. 따라서 보이지 않는 클릭을 수신 할 수있는 유일한 방법은 보이지 않는보기 대신 다른보기를 수신하는 것입니다. 위의 해결 방법은 버튼을 레이아웃에 래핑하므로 버튼이 보이지 않을 때 클릭을 클릭하여 레이아웃으로 전달합니다. 그러면 레이아웃이 이벤트를 처리하고 이에 따라 수행됩니다. 이러한 레이아웃을 많이 사용하는 경우 위의 메커니즘을 사용하여 맞춤 검색 버튼을 만들 수도 있습니다.

+0

정말 좋은 해결책입니다! 고마워요. 많은 남자 –

3

Check.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       if (v.isShown()) 
         v.setVisibility(View.INVISIBLE); 
       else 
         v.setVisibility(View.VISIBLE); 

      } 

, 여기에 코드를 변경

하지만 난 버튼이 보이지 않는 갈 때, 당신이 그것을에 모든 클릭 이벤트를받지 못하고 있으며, 문제라고 생각합니다. 먼저 버튼이 보이지 않을 때 onClick 메서드 호출 받기를 확인하십시오.

보이지 않는 버튼은 상호 작용 이벤트을 발송하지 않습니다. 따라서 버튼의 가시성을 보이지 않게 설정하는 대신 투명하거나 공백의 배경 또는 이와 유사한 것을 설정할 수 있습니다.

하지만 저는 개인적으로 보이지 않는 버튼을 클릭하는 이유 때문에 유스 케이스를 변경해야한다고 생각합니다.

+0

버튼이 보이지 않을 때 클릭 할 때 전화하는 방법은 무엇입니까? –

+0

그렇지 않습니다. 보이지 않는 버튼이 없습니다. OS는 공간을 확보하지만 상호 작용할 수는 없습니다. –

+0

감사합니다 .. 내 시간을 절약하십시오 :) –

관련 문제