当我更改线性布局的可见性并添加到列表中时,所有过去的项目可见性都将更改

时间:2014-03-06 08:30:17

标签: android android-layout android-listview android-linearlayout visibility

我有一个模拟聊天的android程序。对于它我使用一个列表,列表的项目在这个布局中名为XML的{​​{1}}文件中我必须线性布局,在每个文件中我有一个activity_chat_conversation和一个{{ 1}}。

代码:

EditText

填充列表我创建了一个适配器,在其中我设置了应该显示的线性布局。

代码:

ImageView

当我将新项目添加到列表并为其设置可见性时,之前的项目可见性将会更改。

我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:1)

这是因为convertView ==以前的getView()方法。您需要刷新新项目的参数。例如:

if(pmUser == CurrentUser)
{
    llto.setVisibility(0);
    textViewTo.setVisibility(0);
    imageViewTo.setVisibility(0); //this
    llfrom.setVisibility(8);
    textViewFrom.setVisibility(8);
    imageViewFrom.setVisibility(8);
    textViewTo.setText(globalVars.conversations.get(searchUser).
            getConversation().get(position).getText());
    textViewTo.setHeight(30);
}
else
{
    llfrom.setVisibility(0);
    textViewFrom.setVisibility(0);
    imageViewFrom.setVisibility(0); // this
    llto.setVisibility(8);
    textViewTo.setVisibility(8);
    imageViewTo.setVisibility(8);
    textViewFrom.setText(globalVars.conversations.get(searchUser).
            getConversation().get(position).getText());
}