public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startActivity(new Intent(getApplicationContext(), MyPreferenceActivity.class));
}
}
@SuppressLint("ShowToast") public class MyPreferenceActivity extends PreferenceActivity {
CheckBoxPreference checkBoxPreference;
ListPreference listPreference;
EditTextPreference editTextPreference;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.activity_preference);
checkBoxPreference = (CheckBoxPreference) findPreference("checkBox");
Toast.makeText(getApplicationContext(), checkBoxPreference.isChecked()? "开启" : "未开启", Toast.LENGTH_SHORT).show();
listPreference = (ListPreference) findPreference("list");
Toast.makeText(getApplicationContext(), listPreference.getValue(), Toast.LENGTH_SHORT).show();
editTextPreference = (EditTextPreference) findPreference("editText");
Toast.makeText(getApplicationContext(), editTextPreference.getText(), Toast.LENGTH_SHORT).show();
}
}
<!-- activity_preference.xml-->
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:key="checkBox"
android:title="是否开启"
android:summaryOn="已开启"
android:summaryOff="未开启"/>
<ListPreference
android:key="list"
android:title="移动开发"
android:summary="请选择"
android:dialogTitle="系统选择"
android:entryValues="@array/tools"
android:entries="@array/systems"/>
<EditTextPreference
android:key="editText"
android:title="名字"
android:summary="输入名字"
android:dialogTitle="提示"
android:dialogMessage="请输入" />
</PreferenceScreen>
<!-- system_tools.xml-->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="systems">
<item >iOS</item>
<item >Android</item>
</string-array>
<string-array name="tools">
<item >Xcode</item>
<item >Eclipse</item>
</string-array>
</resources>
bug解决:
1.在AndroidMainfest.xml注册MyPreferenceActivity
2.ListPreference不显示列表项,去掉android:dialogMessage就显示