2014-09-12 2 views
0

저는 Android 초보자이며 설정/환경 설정 활동에서 if-if를 만들고 싶습니다.설정 활동에서 if() 설정

<?xml version="1.0" encoding="utf-8"?> 

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

    <CheckBoxPreference 
     android:key="pushCheckBox" 
     android:title="@string/pushnachr_headline" 
     android:summary="@string/pushnachr_explain" 
     android:defaultValue="true"> 

    </CheckBoxPreference> 

</PreferenceScreen> 

가 지금은

public void onCheckboxPush(View b) 
    { 
     if (pushCheckBox.isChecked()) 
     { 
      //CODE 
     } 
     else... 

하지만 돈 같은 것을 만들고 싶었다 내있는 prefs.xml

package net.dominik.genpush; 

import android.os.Bundle; 
import android.preference.PreferenceActivity; 

public class Preferences extends PreferenceActivity{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.prefs); 
    } 
} 

... 그리고 다음은

내 Preferences.java입니다 체크 박스가 변경 될 때 메소드를 시작할 수있는 방법을 알지 못합니다. 다른 방법으로도 사용할 수 있습니다. 내 activity.xml-File에서

android : onClick = "MethodeNameHere" 내 PreferenceActivity 클래스에서 작동하지 않으므로 메시지가 없습니다.

"onClick"과 비슷한 방식으로 (쉬운) 방법을 사용할 수 있습니까?

+0

이 링크를 참조하십시오 http://stackoverflow.com/questions/17271717/checkboxpreference-listener –

답변

2

확인란에 대해 수신기를 설정할 수 있습니다.

CheckBoxPreference checkBox = (CheckBoxPreference) findPreference("pushCheckBox"); 
checkBox.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { 
      @Override 
      public boolean onPreferenceChange(Preference preference, Object value) { 
       //your code here 
       return true; 
      } 
}); 

documentation에 따르면 true를 반환하면 환경 설정의 상태가 새 값으로 업데이트됩니다.

checkBox가 선택되어 있으면 수신기 내부를 확인하십시오.

+0

답장을 보내 주셔서 감사합니다. onPreferenceChange 메서드에서 무엇을해야합니까? 안드로이드 스튜디오가 반환 인수를 갖고 싶어하기 때문에 – DominikTV

0

하나의 속성을 다른 속성에 종속시키려는 경우 android:dependency 속성을 사용할 수 있습니다. 그게 네가 원하는대로 할거야? 당신은 정말 뭔가를 할 수있는 클릭 이벤트를 받기를 원한다면, 예를 들어,

<CheckBoxPreference 
     android:key="pushCheckBox" 
     android:title="@string/pushnachr_headline" 
     android:summary="@string/pushnachr_explain" 
     android:defaultValue="true"> 

    <!-- This setting will be disabled if pref_one is not checked --> 
    <CheckBoxPreference 
     android:defaultValue="false" 
     android:key="preference_two" 
     android:dependency="pushCheckBox" 
     android:title="Pref Two" /> 

는하지만,의 onResume 방법이 뭔가를 넣어.

Preference pushCheckBox = findPreference("pushCheckBox"); 
pushCheckBox.setOnPreferenceClickListener(new OnPreferenceClickListener() { 

    @Override 
    public boolean onPreferenceClick(Preference preference) { 

     // do something here 

     return false; 
    } 
}); 
+0

답변 해 주셔서 감사합니다. @bgplaya가 올바른 방향으로 가고 있다고 생각합니다 :) – DominikTV

관련 문제