Android 对偏好活动的理解
}Android 对偏好活动的理解,android,preference,Android,Preference,} 在这段代码中,首选项列在listview中。它不需要适配器吗?我没有看到数据被输入到listview中。这个偏好屏幕怎么样?是否需要设置首选项?首选项活动自行处理首选项。适配器内置在PreferenceActivity中,因此您无需为此烦恼。也可以使用XML来做同样的事情,而不是以编程方式创建首选项。检查 偏好活动消除了很多痛苦。想象一下,编写代码来连接所有UI操作,比如显示对话框、更改首选项的状态并保存它们。“首选项”活动可以减轻您的痛苦。好的,从上面看,向listview提供的数据源是什
在这段代码中,首选项列在listview中。它不需要适配器吗?我没有看到数据被输入到listview中。这个偏好屏幕怎么样?是否需要设置首选项?首选项活动自行处理首选项。适配器内置在PreferenceActivity中,因此您无需为此烦恼。也可以使用XML来做同样的事情,而不是以编程方式创建首选项。检查
偏好活动消除了很多痛苦。想象一下,编写代码来连接所有UI操作,比如显示对话框、更改首选项的状态并保存它们。“首选项”活动可以减轻您的痛苦。好的,从上面看,向listview提供的数据源是什么?是否是PreferenceScreen、PreferenceCategory、Preference…等等?所有3:),每个项目都以不同的方式呈现,并以给定的顺序呈现。
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* Some initializations */
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
ListView listView = new ListView(this);
listView.setId(android.R.id.list);
listView.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT, 1));
layout.addView(listView);
this.setContentView(layout);
/* Preferences time! (we build the preferences) */
Preference version = getPreference("My School Manager", "Version 2.0",
null);
Preference author = getPreference("Author", "Simone Casagranda", null);
Preference marketLink = getPreference("Android market",
"View all my apps :)",
new Intent(Intent.ACTION_VIEW, Uri
.parse("http://market.android.com/details?id="
+ "it.trento.alchemiasoft.casagranda.simone")));
CheckBoxPreference check = new CheckBoxPreference(this);
check.setTitle("Checkbox");
check.setSummary("Example of checkbox");
DialogPreference license = new MyDialogPreference(this, "License",
"This is the license for...bla bla");
/* Now we add the preferences to the preference screen */
PreferenceScreen preferenceScreen = this.getPreferenceManager()
.createPreferenceScreen(this);
addPreferenceCategory(preferenceScreen, "Preferences Tutorial",
version, author, marketLink, check, license);
this.setPreferenceScreen(preferenceScreen);
}
private boolean addPreferenceCategory(PreferenceScreen preferenceScreen,
String titleCategory, Preference... preferences) {
boolean addPreference = false;
for (Preference preference : preferences) {
if (preference != null)
addPreference = true;
}
if (addPreference) {
PreferenceCategory preferenceCategory = new PreferenceCategory(this);
preferenceCategory.setTitle(titleCategory);
preferenceScreen.addPreference(preferenceCategory);
for (Preference preference : preferences) {
if (preference != null)
preferenceCategory.addPreference(preference);
}
return true;
} else
return false;
}
private Preference getPreference(String title, String summary, Intent intent) {
Preference pref = new Preference(this);
pref.setTitle(title);
pref.setSummary(summary);
if (intent != null)
pref.setIntent(intent);
return pref;
}
public class MyDialogPreference extends DialogPreference {
public MyDialogPreference(Context context, String title, String text) {
super(context, null);
this.setTitle(title);
this.setDialogMessage(text);
}
}