0

Я работаю с настройками и SharedPreferences, и я новичок. Таким образом, у меня есть документ XML, который имеет предпочтение флажка:Как использовать SharedPreferences в инструкции if?

<CheckBoxPreference 
     android:key="@string/touch" 
     android:title="@string/adjust_rotation_speed" 
     android:summary="Check if you want to adjust the rotation speed" 
     android:defaultValue="false"/> 

И я хочу написать if() заявления для регулировки угла поворота моего объекта. Я знаю, что в этой ситуации было бы лучше использовать предпочтение списка или другой тип предпочтений, но я сначала пытаюсь понять предпочтения. Вот если заявление:

//Draw Bottom Prism 
gl.glPushMatrix(); 
gl.glScalef(0.3f, 0.3f, 0.3f); 
gl.glTranslatef(0f, -8f, 0.2f); 
if(prefs.getBoolean(keyRotation, false)) { 
    gl.glRotatef(angle, 0, 3, -3); 
}else { 
    gl.glRotatef(angle, 0, -3, 0); 
} 
triangle.draw(gl); 
gl.glPopMatrix(); 

keyRotation мой ключ значение public static final String keyRotation = "touch"; и префы моя SharedPreference переменная SharedPreferences prefs;. Мне было интересно, как я могу написать оператор if, поэтому каждый раз, когда пользователь проверяет флажок, угол поворота равен gl.glRotatef(angle, 0, 3, -3);, и каждый раз, когда пользователь обнуляет его, угол поворота равен gl.glRotatef(angle, 0, -3, 0);. Огромную благодарность за любую помощь.

ответ

0

Добавить android:onClick="FunctionName" внутри

<CheckBoxPreference 
    android:key="@string/touch" 
    android:onClick="FunctionName" 
    android:title="@string/adjust_rotation_speed" 
    android:summary="Check if you want to adjust the rotation speed" 
    android:defaultValue="false"/> 

в файле XML и добавить эту функцию в соответствующей деятельности:

public void FunctionName(View v) 
{ 
    if(prefs.getBoolean(keyRotation, false)) { 
     gl.glRotatef(angle, 0, 3, -3); 
    } 
    else { 
     gl.glRotatef(angle, 0, -3, 0); 
    } 
} 

Что происходит, что функция FunctionName вызывается каждый раз, когда пользователь нажимает на CheckBoxPreference ,

+0

Благодарим за помощь, но я до сих пор добился того же результата. – Dashboarrd

Смежные вопросы