2013-02-07 71 views
0

我想解析this JSON response到Android的ListView,我试图通过显示一个图像取决于性别和添加男性记录按钮来修改列表视图。Listview不显示一致的数据android

的逻辑是做工精细,除了最后两个entries.John韦恩&莱昂纳多·迪卡普里奥都具有详细信息按钮,同样是预计约翰尼·德普&拉维Tambda.Please指导我的一样。

使用此代码,我想根据性别

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; 
     } 
+0

之前,如果条件只要登录(打印)的'rowData.mgender' – user370305

+0

这是给我的反应是男性,按钮按钮并未显示。 – onkar

+0

请在您的问题中包含整个getView()方法,您可能在重复使用视图时出错。 –

回答

1

记住ListView的孩子们总是重复使用,以区分它们而你滚动它们。当您根据getView()中的某些条件设置属性时,您必须在条件未满足时恢复该属性。当性别是女性时隐藏按钮,但当该视图被重新用于填充男性联系人时,按钮仍然不可见,您必须将其设置为可见。

检查了这一点:

if(rowData.mgender.equalsIgnoreCase("male")) 
{ 
    imageViewStatus.setImageResource(R.drawable.male); 
    button.setVisibility(View.VISIBLE); // You need to add this line in your code 
} else { 
    imageViewStatus.setImageResource(R.drawable.female); 
    button.setVisibility(View.GONE); 
} 
+0

好的。会尝试这个。我也添加了getView方法。 – onkar