0

以下は、Web サービスから ListView を設定するコードです。

  1. この ListView を Cookie から設定して取得するにはどうすればよいですか? (私のコードには例があります)
  2. このリストを更新するボタンがあるとしましょう。
  3. ユーザーがインターネットに接続しているかどうかを処理する方法は?

基本的に、WebService から取り込まれた 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() {

    }
}
4

1 に答える 1

0

私はあなたの質問に逆に答えます。

ユーザーがインターネットに接続しているかどうかを処理するにはどうすればよいですか?

これがローカルに保存されたデータでない場合、インターネット接続がなければ何もできません。Wi-Fiまたはデータ接続をアクティブにするかどうかをユーザーに確認できます(どちらもまだアクティブになっていない場合)。

インターネット接続が利用できるかどうかを確認しますか?

このリストを更新するボタンがあるとしましょう。どのように処理しますか?

データをローカルに保存することが理にかなっている場合は、アダプタでnotifyDataSetChanged()を呼び出すだけです。それ以外の場合は、サーバーを再クエリして、新しいエントリまたは変更されたエントリを確認します。

このListViewを設定してCookieから取得するにはどうすればよいですか?

あなたの例がうまくいくと仮定すると、logcatエラーを投稿していないので、データをCookieに出し入れするのは非常に簡単です。setAttribute()およびgetAttribute()を使用します。実際には、SQLiteデータベース、テキストファイルなど、あらゆる形式のデータストレージを使用して、JSONArrayを介して収集および解析した情報を処理できます。

添加

リストをループする最も簡単な方法は、組み込みのイテレータを使用することです。

for(Cookie cookie : cookieList) {
    if(cookie.getAttribute("college_username").equals("Brown")) {
        // check more attributes or do something
    }
}
于 2012-05-24T18:01:39.743 に答える