android的adapter的大致使用过程

来源:互联网 发布:淘宝促销活动报名 编辑:程序博客网 时间:2024/05/21 15:41

1.布局文件

<ListView    android:id="@+id/mesList"    android:layout_width="match_parent"    android:layout_height="wrap_content">
</ListView>

2.调用Adapter处的写法

messages = MessageSQL.getListMessages();mesList = (ListView) view.findViewById(R.id.mesList);//调用布局messageListAdapter = new MessageListAdapter(getActivity(), messages);mesList.setAdapter(messageListAdapter);
//列表设置点击事件mesList.setOnItemClickListener(new AdapterView.OnItemClickListener() {    @Override    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {        String username = messages.get(position).getFromwho();        Intent intent = new Intent(view.getContext(), ChatDetailActivity.class);        intent.putExtra("username", username);        startActivity(intent);        //动画        ((Activity) view.getContext()).overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);    }});
3.adapter处的写法(大致用法,写的不好。)
public class MessageListAdapter extends ArrayAdapter<Message> {    Context context;    List<Message> messages;    public MessageListAdapter(Context context, List<Message> messages) {        super(context, R.layout.message_item, messages);        this.context = context;        this.messages = messages;    }    @Override    public int getCount() {        if (messages != null) {            return messages.size();        }        return 0;    }    @Override    public Message getItem(int position) {        if (messages != null) {            return messages.get(position);        }        return null;    }    @Override    public long getItemId(int position) {        if (messages != null) {            return messages.get(position).hashCode();        }        return 0;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        View v = convertView;        ViewHold hode = null;        if (v == null) {          hode = new ViewHold();          LayoutInflater inflater = (LayoutInflater) context.
                 getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          v = inflater.inflate(R.layout.message_item, null);          hode.heap = (ImageView) v.findViewById(R.id.heap);          hode.username = (TextView) v.findViewById(R.id.username);          hode.msg = (TextView) v.findViewById(R.id.msg);          hode.time = (TextView) v.findViewById(R.id.time);          hode.message_unread = (TextView) v.findViewById(R.id.message_unread);          v.setTag(hode);        } else {            hode = (ViewHold) v.getTag();        }        Message message = getItem(position);        String name = message.getFromwho();        hode.username.setText(name);        hode.msg.setText(message.getMsg());        hode.time.setText(Utils.dateToRead(message.getDate(), 0));             return v;    }    public void setMessages(List<Message> messages) {        this.messages = messages;    }    private class ViewHold {        ImageView heap;        TextView username;        TextView msg;        TextView time;        TextView message_unread;    }}


0 0
原创粉丝点击