【发布时间】:2014-08-23 09:39:46
【问题描述】:
我创建了一个扩展 BaseAdapter 的适配器。 以下是课程:
class LocalAdapter extends BaseAdapter{
private Context context;
public LocalAdapter(Context ctx){
context=ctx;
}
@Override
public int getCount() {
return messages.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if(view==null){
LayoutInflater li = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = li.inflate(R.layout.chat_list_item,viewGroup,false);
}
TextView rightView = (TextView)view.findViewById(R.id.rightAligned);
TextView leftView = (TextView)view.findViewById(R.id.leftAligned);
if(messages.get(i).getFrom().equals(UserInfo.getMobileNumber())){
rightView.setText(messages.get(i).getMessage());
leftView.setVisibility(View.GONE);
}
else{
leftView.setText(messages.get(i).getMessage());
rightView.setVisibility(View.GONE);
}
return view;
}
}
适配器可以从主类访问 ArrayList。它有大约30个项目。现在,当我加载列表时,所有项目都已加载,但是当滚动列表时,一些项目会在滚动时消失。
请提供解决方案。
【问题讨论】:
-
去掉 if(view==null) 条件就可以了...
-
你需要让 thm 在 if-else 中也可见
标签: android listview android-custom-view baseadapter