我的申请是新闻申请。我有一个来自json-php-mysql的listview填充数据。 我想获得其他新闻类别的新记录数量。例如,在列出经济新闻的同时,我希望在体育图标的页脚上显示新体育新闻的数量。 这是我的代码: PHP代码
while($b=mysql_fetch_assoc($myquery)){
$news[] = array("header" => $b['header'], "newsid" => $b['newsid']);
}
echo json_encode($news);
我的java代码
class Loadnews extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("category",activecat));
// getting JSON string from URL
String json = jsonParser.makeHttpRequest(URL_CATEGORY, "GET",
params);
return json;
}
@Override
protected void onPostExecute(String json) {
try {
news = new JSONArray(json);
if (news != null) {
for (int i = 0; i < news.length(); i++) {
JSONObject c = news.getJSONObject(i);
String header= c.getString(TAG_HEADER);
String newsid= c.getString(TAG_NEWSID);
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(TAG_HEADER, HEADER);
map.put(TAG_NEWSID, newsid);
// adding HashList to ArrayList
newslist.add(map);
}
mAdapter = new CategoryListAdapter(mainactivity.this,newslist);
lv.setAdapter(mAdapter);
} else {
Log.d("NEWS: ", "null");
}
} catch (JSONException e) {
e.printStackTrace();
}}}
我不想再运行另一个asynctask来获取新消息。有没有办法计算这个功能? P.S:变量名可能不正确,因为我试图简化代码。
答案 0 :(得分:0)
为什么不创建一个包含标题和新闻数量的Map。 地图匹配标题和具有相同标题的新闻数量。 例如,:
HashMap<String,Integer> myMapCounter = new HashMap<String,Integer>();
for (Map.Entry<String, String> entry : myMapCounter.entrySet()) {
if(entry.getKey().equals(header))
{
entry.setValue(entry.getValue()+1)
}
}
我真的不明白这个问题。所以我希望你能得到它。