完成主界面及联系人单项布局 UI 的设计实现,读取数据库中的所有联系人,并使用ListContainer 列表显示。
时间: 2023-06-27 20:06:07 浏览: 50
好的,以下是一个简单的实现方法:
1. 首先在布局文件中定义主界面和联系人单项的布局,可以使用LinearLayout或者RelativeLayout等布局方式。
2. 在主界面中添加一个ListContainer控件,用于显示联系人列表。
3. 在代码中读取数据库中的所有联系人,并将其存放在一个List集合中。
4. 创建一个适配器ListAdapter,继承自BaseAdapter,用于将联系人数据绑定到ListContainer中。
5. 在ListAdapter中实现getView()方法,将联系人单项布局填充到ListContainer中,并显示联系人的头像、昵称等信息。
6. 在主界面的onCreate()方法中,将ListAdapter设置给ListContainer即可完成列表的显示。
下面是代码示例:
```
// 定义联系人类
public class Contact {
private String name;
private int avatar;
public Contact(String name, int avatar) {
this.name = name;
this.avatar = avatar;
}
public String getName() {
return name;
}
public int getAvatar() {
return avatar;
}
}
// 在主界面中读取数据库中的所有联系人,并存放在List集合中
List<Contact> contacts = new ArrayList<>();
// TODO: 从数据库中读取联系人数据,并添加到contacts集合中
// 创建适配器ListAdapter,继承自BaseAdapter
class ListAdapter extends BaseAdapter {
private List<Contact> data;
private LayoutInflater inflater;
public ListAdapter(Context context, List<Contact> data) {
this.data = data;
this.inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return data == null ? 0 : data.size();
}
@Override
public Object getItem(int position) {
return data == null ? null : data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.item_contact, parent, false);
holder = new ViewHolder();
holder.ivAvatar = convertView.findViewById(R.id.iv_avatar);
holder.tvName = convertView.findViewById(R.id.tv_name);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
Contact contact = data.get(position);
holder.ivAvatar.setImageResource(contact.getAvatar());
holder.tvName.setText(contact.getName());
return convertView;
}
class ViewHolder {
ImageView ivAvatar;
TextView tvName;
}
}
// 在主界面中将ListAdapter设置给ListContainer
ListContainer listContainer = findViewById(R.id.list_container);
ListAdapter adapter = new ListAdapter(this, contacts);
listContainer.setAdapter(adapter);
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)