Android 我的listView在指定某些条件后显示空行 public View getView(最终int位置,视图转换视图, 视图组(父级){ 最终线性布局项目视图; if(convertView==null){ itemView=(LinearLayout)MLAyoutFlater.充气(R.layout.sms_布局,父项,false); final TextView SMSG=(TextView)itemView.findViewById(R.id.textViewForMs); 最终Sms=mEntries.get(位置); 如果(sms.getAddress()包含(“5556”)){ /*itemView.setVisibility(View.VISIBLE)*/ smsg.setText(sms.getAddress()+“:\n”+sms.getMsg()); smsg.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ //TODO自动生成的方法存根 plum.ShowSendMsgLayout(sms.getMsg().split(“:”[0]); } }); } }否则{ itemView=(LinearLayout)convertView; /*如果(sms.getMsg()包含(“”){ itemView.setVisibility(View.INVISIBLE); }*/ } 返回项目视图; } 公共void upDateEntries(列表条目){ mEntries=newarraylist(); notifyDataSetChanged(); mEntries=条目; notifyDataSetChanged(); }
这是我的列表适配器代码。我给出了一个条件,只有来自emulator 5556的消息才会出现在我的列表视图中。但其他emulator的消息将被视为空白,即没有任何操作性能的空行。请建议代码的解决方案以消除这些空行 这是我的列表适配器代码。我给出了一个条件,只允许发送消息 从emulator 5556显示在我的列表视图中。但是其他人的信息 模拟器将被视为空白 ListView中的行数取决于适配器的方法返回的值。ListView显示所有消息,因为适配器数据源可能包含所有消息 若要解决此问题,请在消息不包含Android 我的listView在指定某些条件后显示空行 public View getView(最终int位置,视图转换视图, 视图组(父级){ 最终线性布局项目视图; if(convertView==null){ itemView=(LinearLayout)MLAyoutFlater.充气(R.layout.sms_布局,父项,false); final TextView SMSG=(TextView)itemView.findViewById(R.id.textViewForMs); 最终Sms=mEntries.get(位置); 如果(sms.getAddress()包含(“5556”)){ /*itemView.setVisibility(View.VISIBLE)*/ smsg.setText(sms.getAddress()+“:\n”+sms.getMsg()); smsg.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ //TODO自动生成的方法存根 plum.ShowSendMsgLayout(sms.getMsg().split(“:”[0]); } }); } }否则{ itemView=(LinearLayout)convertView; /*如果(sms.getMsg()包含(“”){ itemView.setVisibility(View.INVISIBLE); }*/ } 返回项目视图; } 公共void upDateEntries(列表条目){ mEntries=newarraylist(); notifyDataSetChanged(); mEntries=条目; notifyDataSetChanged(); },android,listview,view,Android,Listview,View,这是我的列表适配器代码。我给出了一个条件,只有来自emulator 5556的消息才会出现在我的列表视图中。但其他emulator的消息将被视为空白,即没有任何操作性能的空行。请建议代码的解决方案以消除这些空行 这是我的列表适配器代码。我给出了一个条件,只允许发送消息 从emulator 5556显示在我的列表视图中。但是其他人的信息 模拟器将被视为空白 ListView中的行数取决于适配器的方法返回的值。ListView显示所有消息,因为适配器数据源可能包含所有消息 若要解决此问题,请在消息不
5556
时调用适配器的删除方法:
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();
}
应在将Sms添加到数据列表时验证该条件。如果不符合该条件,则不应添加Sms。我为您更改代码,请尝试:
if(sms.getAddress().contains("5556")){
// your code here...
}else{
// remove item from adapter
remove(position);
notifyDataSetChanged();
}
public View getView(最终int位置、视图转换视图、视图组父视图){
if(convertView==null){
convertView=MLAYOUTINGER.充气(R.layout.sms_布局,父级,false);
}
最终文本视图SMSG=(文本视图)convertView.findViewById(R.id.textViewForMs);
最终Sms=mEntries.get(位置);
smsg.setText(sms.getAddress()+“:\n”+sms.getMsg());
smsg.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
plum.ShowSendMsgLayout(sms.getMsg().split(“:”[0]);
}
});
返回视图;
}
公共void upDateEntries(列表条目){
mEntries.clear();
用于(短信息:条目){
如果(sms.getAddress()包含(“5556”)){
添加(sms);
}
}
notifyDataSetChanged();
}
这对我不起作用。。。但是上面的代码是…谢谢你…:)@SwapnaAkella:为什么不工作是什么意思?你有什么错误吗?
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();
}