1. 렌더링
2. 코드
1. 액티비티에 그림 + 제목 정보 모델 클래스 정의
//그림 및 제목 클래스 정의
class Members { //Picture public int imageId; //Title public String itemName;
//构造函数
public Members(int imageId, String name)
{
//赋值图片
this.imageId = imageId;
//赋值标题
this.itemName = name;
}
}
2. 그림을 가져오고 두 개의 .xml 파일을 정의하여 목록의 실제 행 항목을 사용자 정의합니다.
첫 번째 addexam_list_item.xml
코드
<ImageView
android:id="@+id/addexam_list_icon"
android:layout_width="40dp"
android:layout_height="40dp"
app:srcCompat="@drawable/login_04" />
<TextView
android:id="@+id/addexam_list_item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:text="测试数据"
android:textColor="@color/black" />
<TextView
android:id="@+id/textView"
android:layout_marginRight="50dp"
android:textAlignment="textEnd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=">" />
두 번째 addexam_list_item_tag.xml
코드
<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:background="@color/white"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/addexam_list_item_text"
android:layout_width="wrap_content"
android:layout_height="40dip"
android:gravity="center_vertical"
android:text="标题"
android:textColor="@color/black" />
3. 사용자 정의 ArrayAdapter
코드
// 사용자 정의 어댑터
private class MyAdapter extends ArrayAdapter<Members> {
//생성자
public MyAdapter(@NonNull Context context, ArrayListmembers) { super(context, 0,members); }
//뷰 메소드 가져오기
@Override
public View getView(int position, View ConvertView, ViewGroup parent) { // TODO 자동 생성 메소드 스텁 //첫 번째 그룹 제목 결정 if(position == 0) {
//获取第一行标题
Members members = getItem(position);
//连接视图
convertView = LayoutInflater.from(getContext()).inflate(R.layout.addexam_list_item_tag, parent, false);
//连接标题
TextView tvName = (TextView) convertView.findViewById(R.id.addexam_list_item_text);
//타이틀 텍스트 지정
tvName.setText(members.itemName);
//判断第二个分组标题
}else if(위치 == 5) {
//첫 번째 행 제목 가져오기
Membersmembers = getItem(position);
//连接视图
convertView = LayoutInflater.from(getContext()).inflate(R.layout.addexam_list_item_tag, parent, false);
//连接标题
TextView tvName = (TextView) convertView.findViewById(R.id.addexam_list_item_text);
//赋值标题文本
tvName.setText(members.itemName);
//判断第三个分组标题
}else if(position == 9){ //첫 번째 행 제목 가져오기 Membersmembers = getItem(position);
//连接视图
convertView = LayoutInflater.from(getContext()).inflate(R.layout.addexam_list_item_tag, parent, false);
//连接标题
TextView tvName = (TextView) convertView.findViewById(R.id.addexam_list_item_text);
//赋值标题文本
tvName.setText(members.itemName);
}
//각 그룹의 제목과 그림
else { //제목의 첫 번째 행 가져오기 Members member = getItem(position);
//连接视图
convertView = LayoutInflater.from(getContext()).inflate(R.layout.addexam_list_item, parent, false);
//连接标题
TextView tvName = (TextView) convertView.findViewById(R.id.addexam_list_item_text);
//连接图片
ImageView image = (ImageView) convertView.findViewById(R.id.addexam_list_icon);
//赋值标题
tvName.setText(members.itemName);
//赋值图片
image.setImageResource(members.imageId);
}
//返回视图
return convertView;
}
}
4. 특정 사진 및 제목 정보 추가
첫 번째 방법
//사진 및 제목 추가 function
public void addMembers()
{
Members member1 = new Members(R.drawable.i_1, "分类");
arrayOfMembers.add(member1);
Members member2 = new Members(R.drawable.i_2, "待办");
arrayOfMembers.add(member2);
Members member3 = new Members(R.drawable.i_3, "处理");
arrayOfMembers.add(member3);
Members member4 = new Members(R.drawable.i_4, "完成");
arrayOfMembers.add(member4);
Members member5 = new Members(R.drawable.i_5, "列表");
arrayOfMembers.add(member5);
Members member6 = new Members(R.drawable.i_6, "数据");
arrayOfMembers.add(member6);
Members member7 = new Members(R.drawable.i_7, "报表");
arrayOfMembers.add(member7);
Members member8 = new Members(R.drawable.i_8, "备份");
arrayOfMembers.add(member8);
Members member9 = new Members(R.drawable.i_9, "导入");
arrayOfMembers.add(member9);
Members member10 = new Members(R.drawable.i_10, "工具");
arrayOfMembers.add(member10);
Members member11 = new Members(R.drawable.i_10, "天气");
arrayOfMembers.add(member11);
Members member12 = new Members(R.drawable.i_10, "天气");
arrayOfMembers.add(member12);
Members member13 = new Members(R.drawable.i_10, "天气");
arrayOfMembers.add(member13);
Members member14 = new Members(R.drawable.i_10, "天气");
arrayOfMembers.add(member14);
Members member15 = new Members(R.drawable.i_10, "天气");
arrayOfMembers.add(member15);
}
그런 다음 Activity 의 onCreate() 메서드에서 메서드 5를 로드합니다 . 어댑터 코드
추가 //어댑터 만들기 MyAdapter madapter = new MyAdapter(this, arrayOfMembers);
//表格添加适配器
listview.setAdapter(madapter);
//关联表格单击事件
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//测试事件
Toast.makeText(MainActivity.this, String.valueOf(l), Toast.LENGTH_SHORT).show();
}
});