我正在运行一个服务。在这一点上,我想阅读启动它的应用程序的首选项。虽然我能阅读其他偏好。我无法读取列表首选项中的选定项。请帮忙。一个代码或相关链接是赞赏的。提前谢谢。
insrf1ej1#
在/res/values/
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="listDisplayWord"> <item>Option 1</item> <item>Option 2</item> <item>Option 3</item> </string-array> <string-array name="listReturnValue"> <item>1 is selected</item> <item>2 is selected</item> <item>3 is selected</item> </string-array> </resources>
在/res/xml文件夹中创建preferences.xml/
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <ListPreference android:title="List Preference" android:summary="Select the option of the list" android:key="listPref" android:entries="@array/listDisplayWord" android:entryValues="@array/listReturnValue" /> </PreferenceScreen>
创建setpreferences.java
package com.exercise.AndroidListPreference; import com.exercise.AndroidListPreference.R; import android.os.Bundle; import android.preference.PreferenceActivity; public class SetPreferences extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } }
主代码
package com.exercise.AndroidListPreference; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class AndroidListPreference extends Activity { TextView myListPref; /**Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myListPref = (TextView)findViewById(R.id.list_pref); Button buttonSetPreference = (Button)findViewById(R.id.setpreference); buttonSetPreference.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub startActivity(new Intent(AndroidListPreference.this, SetPreferences.class)); }}); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Toast.makeText(this, "onResume", Toast.LENGTH_LONG).show(); SharedPreferences myPreference=PreferenceManager.getDefaultSharedPreferences(this); String myListPreference = myPreference.getString("listPref", "default choice"); myListPref.setText(myListPreference); } }
还必须修改androidmanifest.xml以包含setpreferences.java
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.exercise.AndroidListPreference" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".AndroidListPreference" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SetPreferences" /> </application> <uses-sdk android:minSdkVersion="4" /> </manifest>
1条答案
按热度按时间insrf1ej1#
在/res/values/
在/res/xml文件夹中创建preferences.xml/
创建setpreferences.java
主代码
还必须修改androidmanifest.xml以包含setpreferences.java