Android:使用 parsequery 适配器在 listview 中更改 imageview 的图像

Posted

技术标签:

【中文标题】Android:使用 parsequery 适配器在 listview 中更改 imageview 的图像【英文标题】:Android: Change image of imageview in listview using a parsequery adapter 【发布时间】:2014-11-27 23:34:25 【问题描述】:

我已经能够根据位置对ListView 中的每个特定项目做很多事情。现在,我正在尝试在ListView 中更改ImageView 的图像,但由于某种原因我不能。每次点击时,下方或上方几个位置的ImageView就会发生变化。

我正在使用ParseQueryAdapter

    public class MyCustomAdapter extends ParseQueryAdapter<ParseObject> 


        public MyCustomAdapter(Context context, String className,
                int itemViewResource) 
            super(context, className, itemViewResource);
        

        @Override
        public View getItemView(final ParseObject status, View convertView, ViewGroup parent) 
            convertView = View.inflate(getActivity().getApplicationContext(), R.layout.status_list_view_item, null);
            mListViewReferences(convertView, status);
            statusText = (TextView) convertView.findViewById(R.id.statusText);
            statusText.setText(status.getString("Status")); 

            // Set the count number for the like counter depending on the users that liked it
            likeCounter = (TextView) convertView.findViewById(R.id.likeCounter);
            likeCounter.setText("" + status.getInt("likeCount"));

            ................

            return super.getItemView(status, convertView, parent);
        

        /**
         * Set References
         * @param View view
         * @param ParseObject status
         */
        private void mListViewReferences(final View view, final ParseObject status) 
            statusLike = (ImageButton) view.findViewById(R.id.statusLike);

            /**
             * onClickListeners and actions to perform
             */

            //Like/Unlike current status
            statusLike.setOnClickListener(new OnClickListener() 
                @Override
                public void onClick(View v) 
                    /**
                    I want to do it in here, i want to change the image of "statusLike" in here depending on the position.
                    */


                
            );

我尝试了很多方法,并且我也将它包含在我正在使用的当前 if/else 语句中,但它仍然不起作用。 likeCount 有效,状态文本和标题也有效。除了更改当前子位置内的图像外,一切正常。

【问题讨论】:

【参考方案1】:

我的做法是正确的,我只是错过了一个非常重要的步骤,即在 onClickListener 中包含 notifyDataSetChanged()。

【讨论】:

以上是关于Android:使用 parsequery 适配器在 listview 中更改 imageview 的图像的主要内容,如果未能解决你的问题,请参考以下文章

Android/Parse-如何处理来自 ParseQuery 的多个回调

如何在android中解析查询搜索案例不敏感?

Android - 解析查询.include(“key”)不返回完整的ParseObject详细信息

导航抽屉内的 ParseQuery 错误验证程序拒绝了类 com.parse.ParseQuery

如何在 android 的解析服务器平台中更新数据?

错误:在 ParseQuery.or() 中找不到符号类“或”;