2013-02-07 196 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