写一个安卓代码,要求如下:创建带好友图片和名字的好友列表,好友列表可以添加和删除,在MsgListActivity中点击任意消息条目跳转到ChatActivity,并将好友姓名传递过来。
时间: 2024-03-29 10:39:20 浏览: 61
好的,以下是我给您提供的一个简单的现方式。
首先,在你项目中创建一个名为 `Friend` 的 Java 类,用于表示好友的信息,包括好友名字和头像图片等信息。代码如下:
```java
public class Friend {
private String name;
private int avatarResId;
public Friend(String name, int avatarResId) {
this.name = name;
this.avatarResId = avatarResId;
}
public String getName() {
return name;
}
public int getAvatarResId() {
return avatarResId;
}
}
```
接下来,我们需要创建一个 `FriendListAdapter` 类,用于在好友列表中显示好友的信息。代码如下:
```java
public class FriendListAdapter extends RecyclerView.Adapter<FriendListAdapter.ViewHolder> {
private List<Friend> mFriendList;
public FriendListAdapter(List<Friend> friendList) {
mFriendList = friendList;
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView avatarImageView;
TextView nameTextView;
public ViewHolder(View itemView) {
super(itemView);
avatarImageView = itemView.findViewById(R.id.avatarImageView);
nameTextView = itemView.findViewById(R.id.nameTextView);
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.friend_list_item, parent, false);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Friend friend = mFriendList.get(position);
holder.avatarImageView.setImageResource(friend.getAvatarResId());
holder.nameTextView.setText(friend.getName());
}
@Override
public int getItemCount() {
return mFriendList.size();
}
}
```
其中,`FriendListAdapter` 继承自 `RecyclerView.Adapter`,用于管理好友列表中的条目。在 `ViewHolder` 中,我们定义了好友列表中每个条目的控件,包括头像和名字。在 `onBindViewHolder` 中,我们将每个条目的好友信息显示在相应的控件中。
接下来,在你的 `MsgListActivity` 中,我们需要使用 `RecyclerView` 来显示好友列表,代码如下:
```java
public class MsgListActivity extends AppCompatActivity {
private List<Friend> mFriendList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_msg_list);
// 添加好友信息
mFriendList.add(new Friend("小明", R.drawable.avatar1));
mFriendList.add(new Friend("小红", R.drawable.avatar2));
mFriendList.add(new Friend("小刚", R.drawable.avatar3));
// 初始化 RecyclerView
RecyclerView friendRecyclerView = findViewById(R.id.friendRecyclerView);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
friendRecyclerView.setLayoutManager(layoutManager);
FriendListAdapter adapter = new FriendListAdapter(mFriendList);
friendRecyclerView.setAdapter(adapter);
// 设置 RecyclerView 条目点击事件
adapter.setOnItemClickListener(new FriendListAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Intent intent = new Intent(MsgListActivity.this, ChatActivity.class);
intent.putExtra("friendName", mFriendList.get(position).getName());
startActivity(intent);
}
});
}
}
```
在 `MsgListActivity` 中,我们首先添加了一些好友信息到 `mFriendList` 中,然后使用 `RecyclerView` 显示好友列表,通过 `setOnItemClickListener` 方法设置好友列表中条目的点击事件,当点击某个条目时,我们将该好友的名字通过 `Intent` 传递到 `ChatActivity` 中。
最后,我们需要创建 `ChatActivity`,用于显示与好友的聊天记录。代码如下:
```java
public class ChatActivity extends AppCompatActivity {
private String mFriendName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat);
// 获取好友名字
mFriendName = getIntent().getStringExtra("friendName");
// 设置标题为好友名字
getSupportActionBar().setTitle(mFriendName);
}
}
```
在 `ChatActivity` 中,我们首先通过 `getIntent()` 方法获取传递过来的好友名字,然后将该名字设置为标题,用于显示当前聊天的对象。
以上就是一个简单的实现方式,该实现方式使用了 `RecyclerView` 和 `Intent` 等技术,希望能够对您有所帮助。
阅读全文