これには本当に苦労しました。Java/Android の初心者。私は最初のアプリを書いていますが、これは、理解するのに数日かけて検索するよりも長くかかった最初のことです。セットアップは次のとおりです。これは、BAC 計算機 / ドリンク カウンターです。
BAC の計算には式が使用されます。フォーラムは次のとおりです。
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>
重み 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 で作成した double にリンクされていないため、式は変更されません。設定に表示されるものはすべて、メイン レイアウトのスピナーを含め、今のところ空のシェルです (デフォルトの時間は 1 時間に設定されています)。
私はPreferences.javaを作成し、Web上のチュートリアルやリソースにあるコードのさまざまな組み合わせを実装しようとしましたが、役に立ちませんでした. とにかく、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;
}}
);}
}
信頼できるガイドをまだ見つけていないので、完全なチュートリアルとサンプル コードは素晴らしいものです。