Android应用程序中的Preference.xml

时间:2011-12-28 08:45:30

标签: android

我正在自定义Android应用,我必须自己初始化一些参数,并且不希望该用户应该能够为它们指定值。我修改了Java代码并为一些参数(早先从R.java中获取值)分配了值,删除了preferences.xml中的那些参数,现在用户看不到它们。但是仍有一些参数,当我在java代码中初始化并从preferences.xml中删除它时,它会在启动时崩溃应用程序,我是否必须在R.java中进行更改?

解决这个问题的第二种方法是将preferences.xml文件从服务器传递到android app,我可以轻松地修改应用程序,使其连接到服务器,并在验证后对preference.xml文件进行解析,但问题是我将如何使android make使用该preference.xml?这种方法是不可消化的,因为如果没有preferences.xml(正如预期的那样,在启动应用程序后,将发生用户的身份验证,然后将推送preferences.xml)应用程序将无法启动。

第三种方法是初始化代码中的参数,并将其从preferences.xml中删除,只是隐藏用户的选项,例如以下代码在preferences.xml中,我已经在代码中初始化了参数但是想要从preferences.xml中删除以下代码

     <PreferenceCategory android:title="@string/pref_audio">
        <CheckBoxPreference android:key="@string/pref_echo_cancellation_key" android:defaultValue="true"
            android:title="@string/pref_echo_cancellation" android:summary="@string/pref_echo_cancellation_summary"></CheckBoxPreference>

        <CheckBoxPreference android:key="@string/pref_echo_canceller_calibration_key"
         android:title="@string/pref_echo_canceller_calibration" />

          <PreferenceScreen android:title="@string/pref_codecs"
            android:key="@string/pref_codecs_key">
            <CheckBoxPreference android:key="@string/pref_codec_speex16_key"
                android:title="@string/pref_codec_speex16"/>
            <CheckBoxPreference android:key="@string/pref_codec_speex8_key"
                android:title="@string/pref_codec_speex8"/>
            <CheckBoxPreference android:key="@string/pref_codec_ilbc_key"
                android:title="@string/pref_codec_ilbc"
                android:shouldDisableView="true"
                android:summary="@string/pref_ilbc_summary"/>
            <CheckBoxPreference android:key="@string/pref_codec_amr_key" 
                android:title="@string/pref_codec_amr" 
                android:defaultValue="true"
                android:shouldDisableView="true"  />
            <CheckBoxPreference android:key="@string/pref_codec_gsm_key"
                android:title="@string/pref_codec_gsm"/>
            <CheckBoxPreference android:key="@string/pref_codec_g722_key"
                android:defaultValue="false"
                android:title="@string/pref_codec_g722"/>

                android:title="@string/pref_codec_silk8"/>
            <CheckBoxPreference android:key="@string/pref_codec_pcmu_key"
                android:title="@string/pref_codec_pcmu"/>
            <CheckBoxPreference android:key="@string/pref_codec_pcma_key"
                android:title="@string/pref_codec_pcma"/>
        </PreferenceScreen>

</PreferenceCategory> 

我可以隐藏这些选项的任何标签或考虑接近1或2的任何其他帮助??? /
此致

1 个答案:

答案 0 :(得分:1)

请不要修改R.java文件。这些值由系统提供。不要操纵它们。尽量不要初始化代码中的参数。这可能有所帮助。