Android ListView cookie问题

Android ListView cookie问题,android,caching,cookies,android-listview,Android,Caching,Cookies,Android Listview,下面是我从web服务填充ListView的代码 如何从cookies设置和获取此ListView?(我的代码中有一个例子) 假设我有一个按钮可以刷新这个列表,如何处理 如何处理用户是否连接到internet 我主要想知道如何管理从Web服务填充的ListView public class EventsActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) {

下面是我从web服务填充ListView的代码

  • 如何从cookies设置和获取此ListView?(我的代码中有一个例子)
  • 假设我有一个按钮可以刷新这个列表,如何处理
  • 如何处理用户是否连接到internet
  • 我主要想知道如何管理从Web服务填充的ListView

    public class EventsActivity extends Activity {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.dashboard);
    
            RequestParams params = new RequestParams();
            params.put("user_id", "1");
    
            BloompItClient.get("get_events", params, new AsyncHttpResponseHandler() {
                @Override
                public void onStart() {
    
                }
    
                @Override
                public void onSuccess(String response) {                
                    JSONObject jsonResponse;
                    try {
                        jsonResponse = new JSONObject(response);
    
                        try {
                            String state = jsonResponse.getString("state");
    
                            if (state.equals("1")) {
                                ArrayList<HashMap<String, String>> eventsList = new ArrayList<HashMap<String, String>>();
                                JSONArray events = jsonResponse.getJSONArray("events");
    
                                for (int i = 0; i < events.length(); i++) {
                                    JSONObject currentEvent = events.getJSONObject(i);
                                    HashMap<String, String> eventMap = new HashMap<String, String>();
    
                                    eventMap.put("college", currentEvent.getString("college_username"));
                                    eventMap.put("author", currentEvent.getString("user_username"));
                                    eventMap.put("title", currentEvent.getString("title"));                                                     
                                    eventMap.put("date", currentEvent.getString("date"));
    
                                    eventsList.add(eventMap);
                                }
    
                                ListView eventsListView = (ListView) findViewById(R.id.events);
                                EventsListAdapter eventsListAdapter = new EventsListAdapter(getApplicationContext(), eventsList);
    
                                // testing cookies
    
                                AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
    
                                PersistentCookieStore persistentCookieStore = new PersistentCookieStore(getApplicationContext());
                                asyncHttpClient.setCookieStore(persistentCookieStore);
    
                                BasicClientCookie baseClientCookie = new BasicClientCookie("cookiesare", "awesome");
                                baseClientCookie.setVersion(1);
                                baseClientCookie.setDomain("it.bloomp");
                                baseClientCookie.setPath("/");
                                persistentCookieStore.addCookie(baseClientCookie);
    
                                List<Cookie> cookieList = persistentCookieStore.getCookies();
    
                                for (int i = 0; i < cookieList.size(); i++) {
                                    System.out.println(cookieList.toString());
                                }
    
                                // testing cookies end
    
                                eventsListView.setAdapter(eventsListAdapter);
                            } else {
    
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    } catch (JSONException e1) {
                        e1.printStackTrace();
                    }
                }
    
                @Override
                public void onFailure(Throwable e) {
    
                }
    
                @Override
                public void onFinish() {
    
                }
            });
        }
    
        public void getEvents() {
    
        }
    }
    
    公共类事件活动扩展活动{
    @凌驾
    创建时的公共void(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dashboard);
    RequestParams params=新的RequestParams();
    参数put(“用户id”,“1”);
    BloompItClient.get(“get_事件”,参数,新的AsyncHttpResponseHandler(){
    @凌驾
    public void onStart(){
    }
    @凌驾
    成功时公共无效(字符串响应){
    JSONObject jsonResponse;
    试一试{
    jsonResponse=新的JSONObject(响应);
    试一试{
    String state=jsonResponse.getString(“state”);
    如果(状态等于(“1”)){
    ArrayList eventsList=新的ArrayList();
    JSONArray events=jsonResponse.getJSONArray(“事件”);
    对于(int i=0;i
    我将以相反的方式回答您的问题

    如何处理用户是否连接到internet

    如果这不是本地保存的数据,那么如果没有internet连接,您将无能为力。如果用户想要激活WiFi或数据连接,您可以提示用户(如果两者均未激活)

    假设我有一个按钮可以刷新这个列表,如何处理

    如果在本地存储数据是有意义的,那么只需在适配器上调用notifyDataSetChanged()。否则,请重新查询服务器并检查是否有新的或修改的条目

    如何从cookies设置和获取此ListView

    假设您的示例有效,因为您没有发布任何logcat错误,所以将数据移入和移出cookie非常简单;使用setAttribute()和getAttribute()。实际上,您可以使用任何形式的数据存储:SQLite数据库、文本文件等来处理通过JSONArray收集和解析的信息

    添加

    循环浏览列表的最简单方法是使用内置迭代器:

    for(Cookie cookie : cookieList) {
        if(cookie.getAttribute("college_username").equals("Brown")) {
            // check more attributes or do something
        }
    }
    

    提示:将代码添加到问题中最简单的方法是复制并粘贴,然后再次突出显示代码并按ctrl-k。Viola,在你的问题所在的同一页正确缩进代码。明白。我把所有的饼干都弄得乱七八糟,我怎么能弄到一块饼干呢?List cookieList=persistentCookieStore.getCookies();对于(inti=0;i