1

findpreference(R.id.myprefid) 在我的 holoeeverywhere 偏好活动中总是返回 null。我无法找到 findpreference 的示例。这是我的偏好xml:

<EditTextPreference
    holo:id="@+id/examiner_preference"
    android:inputType="textCapWords|textPersonName"
    holo:dialogTitle="@string/examiner_dialogTitle"
    holo:key="examiner_preference"
    holo:summary="@string/examiner_summary"
    holo:title="@string/examiner_name" />
<EditTextPreference
    holo:id="@+id/email"
    android:inputType="textEmailAddress"
    holo:dialogTitle="@string/prefs__title"
    holo:key="acra.user.email"
    holo:summary="@string/pref_a_summary"
    holo:title="@string/pref_aemail" />

我做了这个问题中建议的一切,但仍然没有成功。

请提出解决方案或参考使用 holoeverywhere 的 findpreference() 的示例应用程序。(我在演示应用中找不到)

4

1 回答 1

0

更新版本 2:

package ca.imaginauts.smartmed.fragments;

import org.holoeverywhere.preference.EditTextPreference;
import org.holoeverywhere.preference.PreferenceFragment;
import android.os.Bundle;
import ca.imaginauts.smartmed.R;

public class SettingFragment extends PreferenceFragment
{
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);

        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.setting3);

        EditTextPreference email =  (EditTextPreference)findPreference("acra.user.email");
        email.setText("Hello World");
    }
}

在setting3.xml里面

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:holo="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android" > 

<EditTextPreference
    holo:id="@+id/examiner_preference"
    android:inputType="textCapWords|textPersonName"
    holo:dialogTitle="examiner_dialogTitle"
    holo:key="examiner_preference"
    holo:summary="examiner_summary"
    holo:title="examiner_name" />
<EditTextPreference
    holo:id="@+id/email"
    android:inputType="textEmailAddress"
    holo:dialogTitle="prefs__title"
    holo:key="acra.user.email"
    holo:summary="pref_a_summary"
    holo:title="pref_aemail" />

</PreferenceScreen>

它工作的屏幕截图

原版

老实说,我从来没有能够让 HoloEverywhere.findPreference(R.id.examiner_preference) 中的 ID 工作。我总是被迫使用钥匙

(全息中的键:键值)

所以试试这个

   EditTextPreference emailPrefs = (EditTextPreference)findPreference("acra.user.email");

我还没有找到具体的原因,但我在使用 holo:keys 时没有遇到性能或错误方面的问题。可能是你的妥协。

于 2013-07-01T18:35:17.293 回答