我目前正在通过Udacity学习Android开发的基础知识。该课程现在要求我在应用程序上进行设置,以便用户选择温度应该是华氏温度还是摄氏温度。我已经在xml中创建了一个数组,供用户选择他们的偏好,但我不知道如何将这些信息传递给我的java代码。我提供了一些可能出现此问题的地方。截至目前,代码显示并正常工作,直到用户更改
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditTextPreference
android:key="Location"
android:title="location"
android:defaultValue="85383"
android:inputType="text"
android:singleLine="true"/>
<ListPreference
android:title="@string/pref_units_label"
android:key="@string/pref_units_key"
android:defaultValue="@string/pref_units_metric"
android:entryValues="@array/pref_units_values"
android:entries="@array/pref_units_options"/>
</PreferenceScreen>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="pref_units_values">
<item>"@st</item>
<item>Fahrenheit</item>
<item>Celsius</item>
</string-array>
<string-array name="pref_units_options">
</string-array>
</resources>
<resources>
...
<string name="pref_units_label">Temperature Style</string>
<string name="pref_units_key">"@array/pref_units_values"</string>
<string name="pref_units_metric">Celsius</string>
<string name="pref_units_values">Values</string>
<string name="pref_units_imperial">Fahrenheit</string>
</resources>
private String formatHighLows(double high, double low) {
SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(getActivity());
String unitType = shared.getString(getString(R.string.pref_units_key),
getString(R.string.pref_units_metric));
if (unitType.equals(getString(R.string.pref_units_imperial))) {
high = (high * 1.8) + 32;
low = (low * 1.8) + 32;
} else if (!unitType.equals(getString(R.string.pref_units_metric))) {
Log.d(LOG_TAG, "Unit type not found: " + unitType);
}
// For presentation, assume the user doesn't care about tenths of a degree.
long roundedHigh = Math.round(high);
long roundedLow = Math.round(low);
String highLowStr = roundedHigh + "/" + roundedLow;
return highLowStr;
}
我觉得问题可能在于xml文件。我以前有过java经验,但我对xml几乎一无所知。任何可以提供的建议都表示赞赏。谢谢。
答案 0 :(得分:0)
请你更具体一点吗?你试图让用户在unities之间做出选择,我相信第一部分就是定义你想在屏幕上显示这个选项的方式(例如,单选按钮,ListView,捕获内容)在EditText中,接下来您将在此布局项中添加一些Listener,因此当某些事件发生时,您将能够捕获其值。你有哪些问题?