Android ListView는 ArrayAdapter+grouping+Item으로 사용자 정의됩니다.

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
이미지 설명을 추가해주세요
코드

<?xml version="1.0" 인코딩="utf-8"?>

<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
이미지 설명을 추가해주세요
코드

<?xml version="1.0" 인코딩="utf-8"?>

<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();

        }
    });

이미지 설명을 추가해주세요

Supongo que te gusta

Origin blog.csdn.net/GUOZIJUN01/article/details/125834249
Recomendado
Clasificación