RecycleView初级使用

来源:互联网 发布:vb怎么建立数据库 编辑:程序博客网 时间:2024/05/17 03:40

Message的数据显示存放

Activity内容

public class Messages {    private int imageId;    private String contact;    private String message;    private String time;    public Messages(int imageId, String contact, String message, String time) {        this.imageId = imageId;        this.contact = contact;        this.message = message;        this.time = time;    }    public int getImageId() {        return imageId;    }    public String getContact() {        return contact;    }    public String getMessage() {        return message;    }    public String getTime() {        return time;    }}

XML内容

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:layout_width="match_parent"              android:layout_height="wrap_content"              android:orientation="vertical">    <LinearLayout android:layout_width="match_parent"                  android:layout_height="53dp"                  android:layout_marginTop="3dp"                  android:paddingTop="3dp"                  android:orientation="horizontal">        <ImageView android:layout_width="50dp"                   android:layout_height="match_parent"                   android:id="@+id/imageId"/>        <LinearLayout android:layout_width="match_parent"                      android:layout_height="match_parent"                      android:layout_weight="1"                      android:orientation="vertical">            <RelativeLayout android:layout_width="match_parent"                            android:layout_height="match_parent"                            android:layout_weight="1">                <TextView android:layout_width="wrap_content"                          android:layout_height="wrap_content"                          android:id="@+id/contact"                          android:textSize="18sp"                          android:layout_alignParentBottom="true"/>            </RelativeLayout>            <RelativeLayout android:layout_width="match_parent"                            android:layout_height="match_parent"                            android:layout_weight="1">                <TextView android:layout_width="wrap_content"                          android:layout_height="wrap_content"                          android:id="@+id/message"                          android:layout_alignParentTop="true"                          android:layout_marginTop="2dp"/>            </RelativeLayout>        </LinearLayout>        <TextView android:layout_width="match_parent"                  android:layout_height="match_parent"                  android:layout_weight="3"                  android:gravity="center"                  android:id="@+id/time"/>    </LinearLayout>    <LinearLayout android:layout_width="match_parent"                  android:layout_height="0.1dp"                  android:layout_marginTop="3dp"                  android:background="#000000"/></LinearLayout>


Message的适配器

public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.ViewHolder>{    private List<Messages> MessagesList;    static class ViewHolder extends RecyclerView.ViewHolder {        ImageView imageView;        TextView contactText;        TextView messageText;        TextView timeText;        public ViewHolder(View itemView) {            super(itemView);            imageView = (ImageView) itemView.findViewById(R.id.imageId);            contactText = (TextView) itemView.findViewById(R.id.contact);            messageText = (TextView) itemView.findViewById(R.id.message);            timeText = (TextView) itemView.findViewById(R.id.time);        }    }    public MessageAdapter(List<Messages> messagesList) {        MessagesList = messagesList;    }    @Override    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.messages, parent, false);        ViewHolder holder = new ViewHolder(view);        return holder;    }    @Override    public void onBindViewHolder(MessageAdapter.ViewHolder holder, int position) {        Messages messages = MessagesList.get(position);        holder.imageView.setImageResource(messages.getImageId());        holder.contactText.setText(messages.getContact());        holder.messageText.setText(messages.getMessage());        holder.timeText.setText(messages.getTime());    }    @Override    public int getItemCount() {        return MessagesList.size();    }}




main里XML的代码

只一个RecyclerView


main里Activity的代码

public class ChatFragment extends AppCompatActivity{    private List<Messages> messagesList = new ArrayList<Messages>();    private String[] contact = new String[]{"李白","苏轼","诸葛亮","赵云",            "姜维","荀彧","郭嘉","周瑜",            "杨巨源","汤显祖","杜光庭","陈宫",};    private String[] messsage = new String[]{"情不知所起,一往而深",            "生而不可与死,死而不可复生者",            "惊觉相思不露,原来只因已入骨。",            "原来姹紫嫣红开遍,似这般都付与断井颓垣",            "良辰美景奈何天,赏心乐事谁家院",            "朝飞暮卷,云霞翠轩","雨丝风片,烟波画船",            "锦屏人忒看的这韶光贱",            "则为你如花美眷,似水流年。是答儿闲寻遍",            "梦短梦长俱是梦,年来年去是何年",            "人世之事,非人世所可尽",            "这般花花草草由人恋,生生死死随人愿"};    private String[] time = new String[]{"18:59","18:55","18:55","18:53",            "18:50","18:50","18:50","18:49",            "18:47","18:46","18:45","18:45"};    protected void onCreate(Bundle savedInstanceState) {        init();        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycle_view);        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());        recyclerView.setLayoutManager(linearLayoutManager);        MessageAdapter messageAdapter = new MessageAdapter(messagesList);        recyclerView.setAdapter(messageAdapter);             }    private void init() {        for (int i = 0; i < 2; i++) {            for (int j = 0; j < contact.length; j++) {                Messages messages = new Messages(R.drawable.headphoto, contact[j], messsage[j], time[j]);                messagesList.add(messages);            }        }    }}