gpt4 book ai didi

android - 禁用 ListPreference 中的行

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:25 24 4
gpt4 key购买 nike

我正在为我的应用程序的免费版本创建一个设置菜单。我有一个显示许多不同选项的 ListPreference。然而,只有其中一些选项在免费版本中可用(我希望所有选项都可见 - 但禁用,以便用户知道他们缺少什么!)。

我正在努力禁用我的 ListPreference 的某些行。有人知道如何实现吗?

最佳答案

解决了。

我创建了一个扩展 ListPreference 的自定义类。然后,我使用了自定义 ArrayAdapter 并使用了方法 areAllItemsEnabled()isEnabled(int position)

public class CustomListPreference extends ListPreference {

public CustomListPreference (Context context, AttributeSet attrs) {
super(context, attrs);
}


protected void onPrepareDialogBuilder(Builder builder) {
ListAdapter listAdapter = new CustomArrayAdapter(getContext(), R.layout.listitem, getEntries(), resourceIds, index);

builder.setAdapter(listAdapter, this);
super.onPrepareDialogBuilder(builder);
}
}

public class CustomArrayAdapter extends ArrayAdapter<CharSequence> {

public CustomArrayAdapter(Context context, int textViewResourceId,
CharSequence[] objects, int[] ids, int i) {
super(context, textViewResourceId, objects);

}

public boolean areAllItemsEnabled() {
return false;
}

public boolean isEnabled(int position) {
if(position >= 2)
return false;
else
return true;
}

public View getView(int position, View convertView, ViewGroup parent) {
...
return row;
}

关于android - 禁用 ListPreference 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9643306/

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