RecycleView初级使用

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);
            }
        }
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值