gpt4 book ai didi

Android - 在首选项页面中放置一个 ListView

转载 作者:行者123 更新时间:2023-11-30 04:05:55 24 4
gpt4 key购买 nike

我的应用程序中有一个首选项页面。由于没有多项选择 ListPreference(API 级别 11 之后有一个),我想在首选项页面放置一个 ListView。但是 preferences.xml 不允许我插入线性布局。

这是我的 preferences.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="Auto Refresh Settings">
<CheckBoxPreference
android:title="Auto Refresh"
android:defaultValue="false"
android:summary="Enable / Disable Auto Refresh"
android:key="checkboxPref" />
<ListPreference
android:title="Auto Refresh Frequency"
android:summary="Select the frequency of Auto Refresh"
android:key="listPref"
android:defaultValue="20"
android:entries="@array/listArray"
android:entryValues="@array/listValues" />
</PreferenceCategory>

</PreferenceScreen>

它是这样的:

preferences.xml graphical layout

我想要的:

whatiwant :

最后是我的 Settings.java(首选项):

package com.sarkolata.coding;


import android.content.Context;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceCategory;
import android.preference.PreferenceManager;
import android.widget.Toast;
public class Settings extends PreferenceActivity
{


@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);


final Preference ListPref = (Preference) findPreference("listPref");
final Preference CheckPref = (Preference) findPreference("checkboxPref");


if(PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getBoolean("checkboxPref", false)) {
ListPref.setEnabled(false);
}

ListPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

public boolean onPreferenceChange(Preference preference, Object newValue) {

Main.update_tick = Integer.parseInt(newValue.toString()) * 1000;

return true;
}
});



CheckPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

public boolean onPreferenceChange(Preference preference, Object newValue) {

if(newValue.toString() == "true")
{
ListPref.setEnabled(false);
} else {
ListPref.setEnabled(true);
}

if(newValue.toString() == "true") {

Main.refreshAllServers(Main.context, Main.bcontext,"start");

} else {

Main.refreshAllServers(Main.context, Main.bcontext,"stop");

}

return true;
}
});

}



}

最佳答案

我不知道在首选项 Pane 中添加 ListView 是否明智,因为 PreferenceActivity 已经使用 ListView 来显示许多首选项。也许您想使用 MultiSelectListPreference , 允许您进行多项选择的首选项。您可以在 http://blog.350nice.com/wp/archives/240 查看示例

关于Android - 在首选项页面中放置一个 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11679473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com