如何在android中使用RESTful Web服务保存和读回共享偏好?

时间:2011-09-05 05:40:30

标签: android json

我正在创建的当前应用是使用gson通过远程托管的json文件解析和填充列表视图。我在我的应用程序中有一个选项菜单,我希望用户可以选择/取消选择项目,以便它们显示(如果选择)或不显示(如果取消选择)在屏幕上显示的列表视图中通过远程json文件。

我的问题是,我该如何实现这个功能?我可以简单地使用共享偏好吗?甚至可以在使用json文件时隐藏某些列表项吗?

我一直在努力解决这个问题,所以我们将非常感谢所有的帮助。

1 个答案:

答案 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 未经过测试