PreferenceActivity extends ListActivity
, и когда вы увеличиваете предпочтения из xml с помощью addPreferencesFromResource()
, он помещает материал в стандарт ListView
, который используется ListActivity
.
Таким образом, вы можете использовать setContentView()
для указания макета, но вам нужно иметь ListView
с идентификатором "@+android:id/list"
.
Итак, используя пример кода Кляйни:
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.login_settings);
setContentView(R.layout.login_settings_layout);
}
Вам потребуется ListView в login_settings_layout.xml
, который выглядит примерно так:
<ListView
android:id="@+android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>