以下是从我的网络服务填充ListView的代码。
我基本上想知道如何管理从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() {
}
}
答案 0 :(得分:0)
我会反过来回答你的问题。
如果用户连接到互联网,如何处理?
如果这不是本地保存的数据,那么没有互联网连接就没有什么可以做的。您可以提示用户是否要激活WiFi或数据连接(如果它们都没有激活)。
Check Whether Internet Connection is available or not?
假设我有一个按钮会刷新此列表,如何处理它?</ p>
如果在本地存储数据是有意义的,那么只需在适配器上调用notifyDataSetChanged()即可。否则,请重新查询服务器并检查新的或修改的条目。
如何从Cookie中设置和获取此ListView?
假设您的示例有效,因为您没有发布任何logcat错误,所以将数据移入和移出cookie非常简单;使用setAttribute()和getAttribute()。实际上,您可以使用任何形式的数据存储:SQLite数据库,文本文件等,以处理您通过JSONArray收集和解析的信息。
<强>加成强>
循环列表的最简单方法是使用内置迭代器:
for(Cookie cookie : cookieList) {
if(cookie.getAttribute("college_username").equals("Brown")) {
// check more attributes or do something
}
}