PreferenceActivity extends ListActivity
, and when you inflate the preferences from xml with addPreferencesFromResource()
, it puts the stuff into the standard ListView
that ListActivity
uses.
So basically, you can use setContentView()
to specify a layout, but you need to have a ListView
in it with the id "@+android:id/list"
.
So using kleini's example code:
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.login_settings);
setContentView(R.layout.login_settings_layout);
}
You would need a ListView in login_settings_layout.xml
that looks something like:
<ListView
android:id="@+android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…