Listview没有显示一致的数据android

时间:2013-02-07 12:48:34

标签: android listview android-listview

我正在尝试将this JSON response解析到android中的ListView,我试图通过根据性别显示图像并为男性记录添加按钮来修改列表视图。

除了最后两个条目之外,逻辑工作正常。约翰韦恩&莱昂纳多·迪卡普里奥(Leonardo Dicaprio)有详细信息按钮,约翰尼·德普(Johnny Depp& Ravi Tambda。请指导我。

使用此代码,我试图根据性别区分它们

 if(rowData.mgender.equalsIgnoreCase("male"))
                {
                    imageViewStatus.setImageResource(R.drawable.male);
                }
    else{
                    imageViewStatus.setImageResource(R.drawable.female);
                button.setVisibility(View.GONE);

                }

My output

编辑1

public View getView(final int position, View convertView, ViewGroup parent){
            ViewHolder holder = null;
            TextView title = null;
            TextView detail = null;
            TextView data=null;
            TextView message=null;

            ImageView imageViewStatus=null;
            Button button=null;

            final RowData rowData= getItem(position);
            if(null == convertView)

            {
                convertView = layoutInflater.inflate(R.layout.record, null);
                holder = new ViewHolder(convertView);
                convertView.setTag(holder);
            }

            holder = (ViewHolder) convertView.getTag();

            button=(Button)holder.getProceedButton();


            message=holder.getEmail();
            message.setText(rowData.mEmail);

            title = holder.getName();
            title.setText(rowData.mName);

            detail = holder.getAddress();
            detail.setText(rowData.mAdress);                                                    

            data= holder.getPhoneNumber();
            data.setText(rowData.mMobile+" "+rowData.mOffice);

            imageViewStatus=holder.getImage();

            System.out.println("This is the gender "+rowData.mgender);
            if(rowData.mgender.equalsIgnoreCase("male"))
            {
                imageViewStatus.setImageResource(R.drawable.male);
}

            else{
                imageViewStatus.setImageResource(R.drawable.female);
                System.out.println("Button Visibility"+button.getVisibility());

                button.setVisibility(View.GONE);

            }

            return convertView;
        }

1 个答案:

答案 0 :(得分:1)

请记住,滚动它们时,ListView子项始终会被重用。根据{{​​1}}中的某些条件设置属性时,必须在不满足条件时还原该属性。当性别为女性时,您正在隐藏按钮,但当此视图被重复使用以填充男性联系人时,该按钮仍然不可见,您必须再次将其设置为可见。

检查出来:

getView()