Android RecyclerView设计与好友聊天列表代码
时间: 2023-06-13 07:04:26 浏览: 53
下面是一个简单的 Android RecyclerView 设计的好友聊天列表代码:
1. 在布局文件中添加 RecyclerView:
```xml
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"/>
```
2. 创建 RecyclerView 的 Adapter:
```java
public class ChatListAdapter extends RecyclerView.Adapter<ChatListAdapter.ViewHolder> {
private List<ChatMessage> chatMessages;
public ChatListAdapter(List<ChatMessage> chatMessages) {
this.chatMessages = chatMessages;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_chat_message, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
ChatMessage message = chatMessages.get(position);
holder.bind(message);
}
@Override
public int getItemCount() {
return chatMessages.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
private TextView messageTextView;
private TextView timeTextView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
messageTextView = itemView.findViewById(R.id.message_text_view);
timeTextView = itemView.findViewById(R.id.time_text_view);
}
public void bind(ChatMessage message) {
messageTextView.setText(message.getMessage());
timeTextView.setText(message.getTime());
}
}
}
```
3. 创建聊天消息的数据模型:
```java
public class ChatMessage {
private String message;
private String time;
public ChatMessage(String message, String time) {
this.message = message;
this.time = time;
}
public String getMessage() {
return message;
}
public String getTime() {
return time;
}
}
```
4. 创建 RecyclerView 的 Item 布局文件:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:orientation="vertical">
<TextView
android:id="@+id/message_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_chat_message"
android:padding="8dp"
android:textColor="@android:color/primary_text_light"/>
<TextView
android:id="@+id/time_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textColor="@android:color/secondary_text_dark"/>
</LinearLayout>
```
5. 在 Activity 或 Fragment 中初始化 RecyclerView 和 Adapter:
```java
public class ChatListActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private ChatListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat_list);
List<ChatMessage> chatMessages = new ArrayList<>();
chatMessages.add(new ChatMessage("Hello", "10:00 AM"));
chatMessages.add(new ChatMessage("How are you?", "10:01 AM"));
chatMessages.add(new ChatMessage("I'm fine, thank you. And you?", "10:02 AM"));
chatMessages.add(new ChatMessage("I'm good too. Thanks for asking.", "10:03 AM"));
recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new ChatListAdapter(chatMessages);
recyclerView.setAdapter(adapter);
}
}
```
这样就完成了 RecyclerView 的设计和好友聊天列表的代码实现。