我想要的是每次用户点击listview中的项目时我都会尝试增加计数器。但是,每次计数器仅为在列表视图中创建该特定项目的用户增加。请帮忙,我想在用户点击的每个listItem上增加计数器。感谢。
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(final AdapterView<?> parent,
final View view, final int position, final long id) {
try {
caseID = ((CaseModel) parent.getAdapter().getItem(position))
.getCaseId();
caseTittle = ((CaseModel) parent.getAdapter().getItem(
position)).getTitle();
caseDescription = ((CaseModel) parent.getAdapter().getItem(
position)).getDescription();
caseCreator = ((CaseModel) parent.getAdapter().getItem(
position)).getNameofcreator();
userId = ((CaseModel) parent.getAdapter().getItem(position))
.getUserId();
} catch (Exception e) {
// TODO: handle exception
}
if (caseID != null) {
Intent gotoDetail = new Intent(
DoxinetCaseListActivity.this,
DoxinetCaseDiscussionForum.class);
gotoDetail.putExtra("caseId", caseID);
gotoDetail.putExtra("caseTitle", caseTittle);
gotoDetail.putExtra("caseDescription", caseDescription);
gotoDetail.putExtra("nameCreator", caseCreator);
gotoDetail.putExtra("userId", userId);
gotoDetail.putExtra("readStatus", true);
callToCaseStats();
callToIncrementCounter();
startActivity(gotoDetail);
} else {
return;
}
}
});
这是方法callToIncrementCounter();
protected void callToIncrementCounter() {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
ParseQuery<ParseObject> query = ParseQuery.getQuery("case");
//query.whereEqualTo("objectId", caseID);
try {
ob = query.find();
System.out.println("In counter userob" + ob);
for (ParseObject ob1 : ob) {
counter = Integer.parseInt(ob1.get("counter").toString());
System.out.println("In counter " + counter);
counter = counter + 1;
ob1.put("counter", counter );
ob1.saveInBackground();
System.out.println("In counter " + counter);
}
}
catch (Exception d) {
System.out.println("In exception");
d.getMessage();
}
}
答案 0 :(得分:1)
您可以尝试创建Map并将ListView中的位置用作键。地图的值将是每行的计数。
答案 1 :(得分:1)
你正试图为item
中的每个listView
制作一个计数器,如果我做对了,那就是你的意思,请找到解决这种情况的方法。
您正在使用默认适配器用于listView
,而您应使用自定义适配器。
然后您应该使用list<Objects>
填充适配器,此Object
应包含counter
和item
。
然后在onItemClick
方法上,您应该更新counter
点击的商品然后调用adapter.notifyDataSetChanged();
此方法会将listview
更新为显示每个项目的更新计数器。