Android RecyclerView设计通用Adapter

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    return null;
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

}

@Override
public int getItemCount() {
    return 0;
}

这个自己写的适配器会继承这三个方法,我用我自己的理解来阐述一下这三个方法。
首先第一个方法 通常是加载一个布局 然后将这个布局 return。

这里我们可以下一个构造方法,得到这个布局的每个控件的id,如:

    public ViewHolder(View view) {
        super(view);
        leftLayout = (LinearLayout) view.findViewById(R.id.left_layout);
        rightLayout = (LinearLayout) view.findViewById(R.id.right_layout);
        leftMsg = (TextView) view.findViewById(R.id.left_msg);
        rightMsg = (TextView) view.findViewById(R.id.right_msg);
    }
}

这里的 view 就是我们刚刚方法return的view。

第二个方法 就是我们来写逻辑,我们要让这个布局有什么用处。

第三个方法就简单了,意思为得到这个布局有几个项

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的 Android RecyclerView 聊天列表的设计代码,你可以根据自己的需求进行修改: #### item_chat.xml ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:orientation="vertical"> <TextView android:id="@+id/text_chat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:textColor="#000" android:textSize="16sp" /> </LinearLayout> ``` #### ChatAdapter.java ```java public class ChatAdapter extends RecyclerView.Adapter<ChatAdapter.ChatViewHolder> { private List<String> chatList; private LayoutInflater inflater; public ChatAdapter(Context context, List<String> chatList) { this.chatList = chatList; this.inflater = LayoutInflater.from(context); } @NonNull @Override public ChatViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = inflater.inflate(R.layout.item_chat, parent, false); return new ChatViewHolder(view); } @Override public void onBindViewHolder(@NonNull ChatViewHolder holder, int position) { String chatText = chatList.get(position); holder.textChat.setText(chatText); } @Override public int getItemCount() { return chatList.size(); } public static class ChatViewHolder extends RecyclerView.ViewHolder { TextView textChat; public ChatViewHolder(@NonNull View itemView) { super(itemView); textChat = itemView.findViewById(R.id.text_chat); } } } ``` #### MainActivity.java ```java public class MainActivity extends AppCompatActivity { RecyclerView recyclerView; ChatAdapter chatAdapter; List<String> chatList = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new LinearLayoutManager(this)); chatAdapter = new ChatAdapter(this, chatList); recyclerView.setAdapter(chatAdapter); // 添加聊天记录 chatList.add("Hello!"); chatList.add("Hi, how are you?"); chatList.add("I'm fine, thank you. And you?"); chatList.add("I'm doing well, thanks for asking."); chatList.add("That's good to hear."); chatList.add("Yes, it is."); chatList.add("Well, I have to go now. Talk to you later."); chatList.add("Sure, bye for now."); // 刷新聊天列表 chatAdapter.notifyDataSetChanged(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值