2013-04-17 6 views
0

저는 Android 개발에 새로운 사람이며 내 첫 번째 Android 프로젝트에 ToggleButton을 추가하려고합니다. 내가 원하는 것처럼 작동하게하는 데 문제가있다.Android 토글 버튼에 올바른 값이 표시되지 않습니다.

<ToggleButton 
    android:id="@+id/toggle1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:enabled="true" 
    android:textOff="Off" 
    android:textOn="On" /> 

그리고 이것은 내 활동 클래스입니다 :

ToggleButton입니다

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_toggle); 
     addListenerOnButton(); 
    } 
    public void addListenerOnButton() { 
     togglelocation = (ToggleButton) findViewById(R.id.toggle1); 
     togglelocation.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
       } 
      }); 

      } 

문제는 내가 토글 버튼 아무것도 클릭 할 때입니다 내가 기대 해요 반면 화면에서 발생 토글 버튼이 켜짐/꺼짐 사이를 토글합니다.

togglebutton

나는, 참/거짓 사이 isChekced() 변경의 값을 디버깅 할 때.

하지만 화면 레벨에서는 아무 것도 변경되지 않았습니다. 내가 뭘 놓치고 있는지 모르겠다.

편집 :

나는 그것이 내 장치 태블릿 화웨이와 관련된 것 같아요. 난 그냥 가상 장치에서 그것을 테스트하고 그것은 매력처럼 작동 !!!!

+0

//togglelocation.toggle(); 당신이 그것을 추가한다면 당신은이 라인을 원하지 않습니다. 그리고 동일한 코드가 저에게 잘 작동합니다 – Triode

+0

이 코드는 저에게 잘 작동합니다. 당신이 togglelocation.toggle(); 코드를 실행하기 전에 –

+0

togglelocation.toggle(); 전혀 필요하지 않습니다 그것은 자동으로 상태를 토글합니다. 그리고 클릭 리스너에게도 전화가 걸립니다. – Triode

답변

0

당신은 그것을 온/오프 할 코드가 필요하지 않습니다. 이런 식으로 XML에 toggleButton을 추가하면 필요한 작업을 수행 할 수 있습니다. :

<ToggleButton 
    android:id="@+id/toggleButton1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/CreateFileButton" 
    android:layout_centerHorizontal="true" 
    android:text="ToggleButton" /> 

일부 기능을 추가하려면 활동 Java 파일에 아래 코드를 사용하십시오.

tb = (ToggleButton) findViewById(R.id.toggleButton1); 

    tb.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 

      if(isChecked) 
      { 

       Toast.makeText(MainActivity.this, "on State", Toast.LENGTH_SHORT).show(); 
      } 
      else 
      { 
       Toast.makeText(MainActivity.this, "off State", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 
+0

이것은 정확히 내가 한 일입니다. 그러나 나를 위해 일하지 않는다!! 왜 어떤 생각? – Anass

+0

당신은 setOnClickListener()를 사용하고 있습니다. setOnCheckedChangeListener()를 사용하고 있습니다. 둘 다 다르다. – SKK

+0

두 경우 모두 토글 디스플레이가 작동해야합니까 ?? – Anass

1

액티비티 클래스에서 addListenerOnButton() 메서드로 togglelocation = (ToggleButton) findViewById(R.id.toggle1);을 이동 한 다음 onCreate 메서드 내에 넣습니다. 이 같은 addListenerOnButton() 전에 넣어주세요 :

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_toggle); 

     togglelocation = (ToggleButton) findViewById(R.id.toggle1); 

     addListenerOnButton(); 
    } 
+0

안녕하세요 ss1271, 내 코드를 편집 내 질문을 참조하십시오. 하지만 여전히 같은 문제가 있습니다. 심지어 토글 버튼을 클릭해도 변경되지 않습니다. 화면을 업데이트해야합니까? – Anass

+0

@Anass 이상한데 – dumbfingers

+0

예 : s! 나는 이것에 4 시간을 아무 결과없이 보냈다! – Anass

관련 문제