Использование пользовательских com.android.internal.R.layout.preference

Есть ли способ установить layoutResId для android.preference.Preference? Мне нужно заменить com.android.internal.R.layout.preference чем-то большим, чем ListView. (Я хочу PreferenceActivity в другом представлении и для него, чтобы раздуть иерархию предпочтений в этом представлении вместо того, чтобы показывать только ListView по умолчанию). Через PreferenceActivity я могу получить PreferenceManager, но PreferenceManager.getPreferenceScreen является закрытым пакетом. PreferenceScreen.setLayoutResId может изменить ResId, который я хочу, но я не могу получить его. Если бы я мог, изменил бы эту работу или это сломало бы вещи?

1 ответ

Ты можешь позвонить setContentView на PreferenceActivity до тех пор, пока есть ListView где-то в макете с идентификатором android.R.id.list (или же @android:id/list из XML). Это будет целью, в которую завышены предпочтения. Вы можете добавлять любые другие представления, которые вам нравятся, при условии соблюдения этого требования.

Другие вопросы по тегам