MySql データベースからロードされた特定のオブジェクトを ListFragment に入力したいと考えています。
ResultSet から最初の 10 個の「オブジェクト」をロードする必要があります。これには AsyncTaskLoader を使用し、ロードされたオブジェクトをデータベースから取得するたびに ListItem に入れたいと考えています。
誰でもこれで私を助けることができますか?良い例やチュートリアルを探してみましたが、本当に役立つものは見つかりませんでした...
MySql データベースからロードされた特定のオブジェクトを ListFragment に入力したいと考えています。
ResultSet から最初の 10 個の「オブジェクト」をロードする必要があります。これには AsyncTaskLoader を使用し、ロードされたオブジェクトをデータベースから取得するたびに ListItem に入れたいと考えています。
誰でもこれで私を助けることができますか?良い例やチュートリアルを探してみましたが、本当に役立つものは見つかりませんでした...
preexecute メソッドで新しいリストを使用してアダプターを作成します。そのアダプターをリストビューに設定します。
次に doInBackground でデータベースを読み取り、リストに収まるようにオブジェクトを作成しますが、追加しないでください。publishprogress メソッドのパラメーターとして作成した後に各オブジェクトを渡します。
onProgressUpdate でオブジェクトをリストに追加し、データセットが変更されたことをアダプターに通知します。
以下は、Twitterの呼び出しを読み取る方法の例です。
private class parseTwitterTask extends AsyncTask<Void, TCListObject2, List<TCListObject2>> {
TCListObjectAdapter2 adapter;
List<TCListObject2> list;
@Override
protected void onPreExecute() {
list = new ArrayList<TCListObject2>();
ListView lv = (ListView)findViewById(R.id.twitterlist);
adapter = new TCListObjectAdapter2(list);
lv.setAdapter(adapter);
super.onPreExecute();
}
@Override
protected List<TCListObject2> doInBackground(Void... params) {
try {
String url = social.get("twittersearchurl");//"http://search.twitter.com/search.json?q=" + social.get("twitter");
String json = Internet.request(url, null);
JSONObject jo = new JSONObject(json);
if(jo.has("results")) {
JSONArray ar = jo.getJSONArray("results");
for(int i = 0; i < ar.length(); i++) {
TCListObject2 tweet = new TCListObject2();
JSONObject jobj = (JSONObject) ar.get(i);
tweet.id = "false";
tweet.img = jobj.getString("profile_image_url");
String text = jobj.getString("text");
text = Html.fromHtml(text).toString();
tweet.params.put(R.id.sub2, text);
String name = jobj.getString("from_user");
name = Html.fromHtml(name).toString();
tweet.params.put(R.id.text, name);
String time = jobj.getString("created_at");
tweet.params.put(R.id.sub1, Converter.timeToTimeAgo(time));
try {
tweet.time = new Date(time);
} catch(Exception e) {
e.printStackTrace();
}
tweet.celLayout = R.layout.cell_tweetobject;
publishProgress(tweet);
}
}
} catch(Exception e) {
e.printStackTrace();
}
return list;
}
@Override
protected void onProgressUpdate(TCListObject2... values) {
list.add(values[0]);
adapter.notifyDataSetChanged();
super.onProgressUpdate(values);
}