2015-02-10 33 views
1
public View getView(final int position, View convertView, 
      ViewGroup parent) { 
     final LinearLayout itemView; 

     if(convertView == null){ 

       itemView = (LinearLayout) mLayoutInflater.inflate(R.layout.sms_layout, parent, false); 
       final TextView smsMsg = (TextView)itemView.findViewById(R.id.textViewForSMS); 
       final Sms sms=mEntries.get(position); 
       if(sms.getAddress().contains("5556")){ 
       /*itemView.setVisibility(View.VISIBLE);*/ 
       smsMsg.setText(sms.getAddress()+" :\n "+sms.getMsg()); 
       smsMsg.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        plum.ShowSendMsgLayout(sms.getMsg().split(":")[0]); 

       } 
      }); 
       } 

     }else{ 

      itemView=(LinearLayout)convertView; 
      /* if(sms.getMsg().contains(" ")){ 
       itemView.setVisibility(View.INVISIBLE); 
      }*/ 
     } 

     return itemView; 
    } 



    public void upDateEntries(List<Sms> entries) { 
     mEntries = new ArrayList<Sms>(); 
     notifyDataSetChanged(); 
     mEntries = entries; 
     notifyDataSetChanged(); 
    } 

這是我的代碼清單適配器。我給出了一個條件,即只有來自仿真器5556的消息出現在我的列表視圖中。但其他模擬器的消息將被視爲空白,即沒有任何動作性能的空行。請爲代碼建議一個解決方案以消除這些空行。我的listView在指定了一些條件後顯示空行

回答

0

這是我的代碼清單適配器。我給出了一個條件,即模擬器5556中只有 的消息出現在我的列表視圖中。但其他 仿真器的消息將被看作是在ListView的行的空白

數量是取決於該值被返回適配器的getCount方法方法。 ListView顯示所有消息,因爲可能適配器數據源包含所有消息。當您添加短信到您的數據列表

if(sms.getAddress().contains("5556")){ 

    // your code here... 
}else{ 
    // remove item from adapter 
    remove(position); 
    notifyDataSetChanged(); 
} 
+0

這並沒有爲我工作...但上面的代碼做...謝謝...: ) – 2015-02-12 04:57:15

+0

@SwapnaAkella:你是什麼意思爲什麼不工作?你有什麼錯誤嗎? – 2015-02-12 05:09:58

0

條件應在時間驗證:

要解決此問題,呼籲適配器remove方法,如果消息不包含5556。如果不符合該條件,則不應添加短信。我更改代碼對你來說,有一個嘗試:

public View getView(final int position, View convertView, ViewGroup parent) { 
    if(convertView == null){ 
     convertView = mLayoutInflater.inflate(R.layout.sms_layout, parent, false); 
    } 
    final TextView smsMsg = (TextView)convertView.findViewById(R.id.textViewForSMS); 
    final Sms sms=mEntries.get(position); 
    smsMsg.setText(sms.getAddress()+" :\n "+sms.getMsg()); 
    smsMsg.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      plum.ShowSendMsgLayout(sms.getMsg().split(":")[0]); 

     } 
    }); 

    return convertView; 
} 



public void upDateEntries(List<Sms> entries) { 
    mEntries.clear(); 
    for(Sms sms : entries){ 
     if(sms.getAddress().contains("5556")){ 
      mEntries.add(sms); 
     } 
    } 
    notifyDataSetChanged(); 
}