列表视图上的增量计数器

时间:2014-05-27 10:48:14

标签: android android-listview parse-platform

我想要的是每次用户点击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();
    }

}

2 个答案:

答案 0 :(得分:1)

您可以尝试创建Map并将ListView中的位置用作键。地图的值将是每行的计数。

答案 1 :(得分:1)

你正试图为item中的每个listView制作一个计数器,如果我做对了,那就是你的意思,请找到解决这种情况的方法。

您正在使用默认适配器用于listView,而您应使用自定义适配器

然后您应该使用list<Objects>填充适配器,此Object应包含counteritem

然后在onItemClick方法上,您应该更新counter 点击的商品然后调用adapter.notifyDataSetChanged();此方法会将listview更新为显示每个项目的更新计数器。