我正在创建的当前应用是使用gson通过远程托管的json文件解析和填充列表视图。我在我的应用程序中有一个选项菜单,我希望用户可以选择/取消选择项目,以便它们显示(如果选择)或不显示(如果取消选择)在屏幕上显示的列表视图中通过远程json文件。
我的问题是,我该如何实现这个功能?我可以简单地使用共享偏好吗?甚至可以在使用json文件时隐藏某些列表项吗?
我一直在努力解决这个问题,所以我们将非常感谢所有的帮助。
答案 0 :(得分:0)
使用自定义ArrayAdapter,您可以“选择”根据某些首选项显示的内容(我会对传递给构造函数的对象列表进行过滤)。 这样的事情:
public class DbAdapter extends ArrayAdapter<Db> {
private SharedPreferences preferences;
int resource;
String response;
Context context;
//Initialize adapter
public DbAdapter(Context context, int resource, List<Database> items) {
super(context, resource);
this.preferences = PreferenceManager.getDefaultSharedPreferences(context);
filter(items);
this.resource=resource;
}
private final void filter(final List<Database> input) {
final String pref = this.preferences.getString("some_key", "");
for (Database db : input) {
if (!pref.contains(db.dbid + ",")) {
this.add(db);
}
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
LinearLayout DbView;
//Get the current Database object
Database db = this.getItem(position);
// ...
这假定首选项“some_key”包含逗号分隔的dbId
列表(如1,5,12,
)
NB 未经过测试