1
我感兴趣地阅读了Avoiding Memory Leaks文章,并关注对上下文对象的跳转引用。我有一个类如下。如何避免在ArrayAdapter中泄漏上下文
public class MessageAdapter extends ArrayAdapter<Message> {
private ArrayList<Message> items;
private LayoutInflater inflater;
public MessageAdapter(Context context, int textViewResourceId, ArrayList<Message> items) {
super(context, textViewResourceId, items);
this.items = items;
inflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
v = inflater.inflate(R.layout.message_row, null);
}
Message o = items.get(position);
if (o != null) {
TextView content = (TextView) v.findViewById(R.id.content);
TextView date = (TextView) v.findViewById(R.id.date);
content.setText(Html.fromHtml("<b>" + o.getSender() + "</b>: " + o.getContent().replace("\n", "<br/>")));
date.setText(o.getReceived().toString());
}
return v;
}
}
是否有问题需要引用LayoutInflater对象,因为它必须以某种方式使用上下文对象?对于我在这里要做的事情,有没有更好的设计模式? (只使用上下文来初始化XML;从那时起,只使用传入的视图到getView
)
顺便说一句,保存视图不起作用;有人回答说,它真的搞砸了布局。 – I82Much 2010-09-28 14:41:50