Я действительно боролся с этим. Новое в Java/Android. Я пишу свое первое приложение, и это первое, что заняло у меня больше времени, чем пару дней поиска. Вот настройки: Это калькулятор БАК/напиток счетчик:Как мне получить предпочтения для работы в Android?
формула используется для расчета концентрации алкоголя в крови. Вот Forumla:
Bac = ((StandardDrinks/2) * (GenderConstant/Weight)) - (0.017 * Hours);
Так как вы можете видеть, будучи в состоянии изменить пол и вес будет производить более точные и персонализированные результаты. Так что у меня их два раза:
double GenderConstant = 7.5; //9 for female
double Weight = 180;
Для изменения этих переменных я хотел бы человек, чтобы иметь возможность зайти в настройки и выбрать различные значения. У меня эти вещи настроены, но не связаны с переменными, показанными выше, потому что я не могу на всю жизнь понять, как это сделать. Вот они:
я нажимаю кнопку меню, и это всплывает. Отлично. Я нажму Настройки.
Теперь предпочтения выскочит. Вот мой preferences.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Personal Settings">
<ListPreference
android:title="Gender"
android:summary="Verify or deny the presence of a Y chromosome."
android:key="genderPref"
android:defaultValue="male"
android:entries="@array/genderArray"
android:entryValues="@array/genderValues" />
<ListPreference
android:title="Weight"
android:summary="How much the planet pulls on you, in pounds."
android:key="weightPref"
android:defaultValue="180"
android:entries="@array/weightArray"
android:entryValues="@array/weightValues" />
</PreferenceCategory>
<PreferenceCategory android:title="Drink Settings">
<ListPreference
android:title="Beer Size"
android:summary="The volume of your beer, in ounces."
android:key="beerPref"
android:defaultValue="12"
android:entries="@array/beerArray"
android:entryValues="@array/beerValues" />
<ListPreference
android:title="Shot Size"
android:summary="The volume of your shot, in ounces."
android:key="shotPref"
android:defaultValue="1.5"
android:entries="@array/shotArray"
android:entryValues="@array/shotValues" />
<ListPreference
android:title="Wine Size"
android:summary="The volume of your wine, in ounces."
android:key="winePref"
android:defaultValue="5"
android:entries="@array/wineArray"
android:entryValues="@array/wineValues" />
</PreferenceCategory>
</PreferenceScreen>
Onward весовому ListPreference:
И это показывает вверх. Значения сохраняются в виде массивов строк в res/values / arrays.xml. Вот пример, только весовых:
<string-array name="weightArray">
<item>120 lbs</item>
<item>150 lbs</item>
<item>180 lbs</item>
<item>210 lbs</item>
<item>240 lbs</item>
<item>270 lbs</item>
</string-array>
<string-array name="weightValues">
<item>120</item>
<item>150</item>
<item>180</item>
<item>210</item>
<item>240</item>
<item>270</item>
</string-array>
Это в основном до тех пор, пока я не получил. Я могу щелкнуть значение, конечно, но оно не меняет формулу, потому что оно не связано с двойниками, которые я создал в DrinkingBuddy.java. Все элементы, отображаемые в настройках, теперь являются пустыми оболочками, включая прядильщик на основном макете (время по умолчанию только 1 час)
Я создал Preferences.java и попытался реализовать различные комбинации кода, найденного в учебных пособиях и ресурсах в Интернете, но безрезультатно. Вот оно все равно, наполненная неудачных попыток сделать beerPref (параметр настройки изменить, сколько унций в пиве) коррелируют с переменной в мой основной класс:
package com.dantoth.drinkingbuddy;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.Preference.OnPreferenceClickListener;
public class Preferences extends PreferenceActivity {
public static final String PREF_BEER_SIZE = "PREF_BEER_SIZE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
//Get the custom preference
Preference beerPref = (Preference) findPreference("beerPref");
beerPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
SharedPreferences customSharedPreference = getSharedPreferences("myCustomSharedPrefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = customSharedPreference.edit();
editor.commit();
return true;
}}
);}
}
полностью на учебник и примеры кода будет УДИВИТЕЛЬНО, поскольку мне еще предстоит найти надежные руководства.
кажется, у вас есть код здесь, чтобы сохранить предпочтения ... но это ВАШ код для «формулы» * чтение * с того места, где сохраняется предпочтение? –
Ummm Я так не думаю. У меня есть 2 файла .java: DrinkingBuddy.java и Preferences.java. Последний - последний бит показанного кода, а все остальное - в DrinkingBuddy.java. Еще раз, все, что находится под строкой, которая «добавляетПримечанияFromResource ...» - это просто дерьмо, которое я бросил туда, чтобы попытаться заставить его работать. –
Вот несколько обучающих программ, которые помогли мне: http://viralpatel.net/blogs/android-preferences-activity-example/ и http://www.brighthub.com/mobile/google-android/articles/116373. aspx – MarkHu