我真的一直在努力通过这一点。 Java / Android新手。我在写我的第一个应用程序,这是第一件花了我比寻找几天更长的时间。这是设置:这是一个BAC计算器/饮料计数器:
公式用于计算BAC。这里是forumla:
Bac = ((StandardDrinks / 2) * (GenderConstant / Weight)) - (0.017 * Hours);
所以,你可以看到,能够修改性别和体重将产生更准确和个性化的结果。所以我有他们双:
double GenderConstant = 7.5; //9 for female
double Weight = 180;
要更改这些变量,我希望人能够进入设置并选择不同的值。我有这些东西设置,但没有链接到上面显示的变量,因为我不能为我的生活弄清楚如何。他们来了:
我按菜单按钮,弹出。大。我将点击设置。
现在的喜好弹出。这里是我的preferences.xml:
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" />
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" />
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" />
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" />
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" />
向前到重量ListPreference:
这显示。这些值作为字符串数组存储在res / values / arrays.xml中。这里有一个例子,只是重量:
120 lbs
150 lbs
180 lbs
210 lbs
240 lbs
270 lbs
120
150
180
210
240
270
这基本上就是我已经得到的。我可以点击一个值,肯定,但它不改变公式,因为它没有链接到我在DrinkingBuddy.java中创建的双。在设置中显示的所有东西现在只是空shell,包括主布局上的微调器(默认时间刚刚设置为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;
}}
);}
}
完整的教程和示例代码将是AWESOME,因为我还没有找到任何可靠的指南。