Adapter:
Layout部分:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity">    <ListView        android:id="@+id/list"        android:layout_width="match_parent"        android:layout_height="match_parent"/></LinearLayout>

Java部分:

import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        String[] strs = {"项目1","项目2","项目3","项目4","项目5"};        ArrayAdapter<String> adapter = new ArrayAdapter<String>                (this,android.R.layout.simple_expandable_list_item_1,strs);        ListView list_test =  findViewById(R.id.list);        list_test.setAdapter(adapter);    }}

Android studio :适配器控件_第1张图片
Spinner:
Layout部分:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity">    <Spinner        android:id="@+id/spacer1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"/>    <Spinner        android:id="@+id/spacer2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:spinnerMode="dialog"/></LinearLayout>

Java部分:

import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.widget.Adapter;import android.widget.ArrayAdapter;import android.widget.Spinner;public class MainActivity extends AppCompatActivity {    Spinner sp1,sp2;    String str[] = new String[]{"数学","英语","语文","音乐","美术","体育"};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        sp1 = findViewById(R.id.spacer1);        sp2 = findViewById(R.id.spacer2);        ArrayAdapter adapter = new ArrayAdapter<String>                (this,android.R.layout.simple_expandable_list_item_1,str);        sp1.setAdapter(adapter);         sp2.setAdapter(adapter);    }}

Android studio :适配器控件_第2张图片
Android studio :适配器控件_第3张图片
ListView2:
Layout部分:
activity_main.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <ImageView        android:layout_marginLeft="10dp"        android:id="@+id/person_image"        android:layout_width="50dp"        android:layout_height="50dp" />    <TextView android:id="@+id/person_name"        android:layout_marginLeft="10dp"        android:textSize="20sp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        android:layout_toRightOf="@id/person_image"/>    <CheckBox android:id="@+id/check_Box"        android:layout_marginRight="10dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerVertical="true"        android:layout_alignParentRight="true"        android:buttonTint="#8B8878"/></RelativeLayout>

item_layout.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <LinearLayout        xmlns:android="http://schemas.android.com/apk/res/android"        android:layout_width="match_parent"        android:layout_height="wrap_content">        <Button            android:id="@+id/selected_all"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="全选"            android:textSize="24sp"/>        <Button            android:id="@+id/unselected_all"            android:layout_width="0dp"            android:layout_weight="1"            android:layout_height="wrap_content"            android:text="全不选"            android:textSize="24sp"/>        <Button            android:id="@+id/reverse_select"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="反选"            android:textSize="24sp"/>    </LinearLayout>    <ListView        android:id="@+id/list_view"        android:layout_width="match_parent"        android:layout_height="match_parent">    </ListView></LinearLayout>

Java部分:
MainActivity.java

import android.app.Activity;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.ListView;import java.util.ArrayList;import java.util.List;import java.util.logging.Logger;public class MainActivity extends AppCompatActivity {    private List<Person> mPersonList = new ArrayList<>();     private ListView mListView;     private PersonAdapter mAdapter;     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initPerson();        mAdapter = new PersonAdapter(MainActivity.this, mPersonList);        mListView = (ListView) findViewById(R.id.list_view);        mListView.setAdapter(mAdapter);         Button button1 = (Button) findViewById(R.id.selected_all);        Button button2 = (Button) findViewById(R.id.unselected_all);        Button button3 = (Button) findViewById(R.id.reverse_select);        button1.setOnClickListener(new View.OnClickListener() {            public void onClick(View v) {                selectAll(v);            }        });        button2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                unSelectAll(v);            }        });        button3.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                reverseSelect(v);            }        });    }    public void selectAll(View view){        for(Person person : mPersonList){            person.setCheck(true);        }        mAdapter.notifyDataSetChanged();    }    public void unSelectAll(View view){        for(Person person : mPersonList){            person.setCheck(false);        }        mAdapter.notifyDataSetChanged();    }    //反选    public void reverseSelect(View view) {        for(Person person : mPersonList) {            if (person.getIsCheck() == false) {                person.setCheck(true);            } else {                person.setCheck(false);            }        }        mAdapter.notifyDataSetChanged();    }    //初始化实体类    private void initPerson() {        for(int i=0; i<5; i++) {            Person tom = new Person("照相机", R.drawable.p1);            mPersonList.add(tom);            Person kate = new Person("时钟", R.drawable.p2);            mPersonList.add(kate);            Person ross = new Person("游戏", R.drawable.p3);            mPersonList.add(ross);        }    }}

Person.java

public class Person {    private String name;//定义字符串    private int imageId;//定义图片ID    private boolean isCheck;//电影复选框组件对象    //构造方法初始化    public Person(String name, int imageId) {        this.name = name;        this.imageId = imageId;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getImageId() {        return imageId;    }    public void setImageId(int imageId) {        this.imageId = imageId;    }    public boolean getIsCheck() {        return isCheck;    }    public void setCheck(boolean check) {        isCheck = check;    }}

PersonAdapter.java

import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.ImageView;import android.widget.TextView;import java.util.List;public class PersonAdapter extends BaseAdapter {    private Context mContext;//设备上下文    private List<Person> mList;//包含实体类的列表    private ViewHolder mViewHolder;//视图缓冲    //构造方法初始化    public PersonAdapter(Context mContext, List<Person> mList) {        this.mContext = mContext;        this.mList = mList;    }    @Override    public int getCount() {        return mList.size();//返回列表的长度    }    @Override    public Object getItem(int i) {        return mList.get(i);//返回元素项    }    @Override    public long getItemId(int i) {        return i;//返回元素ID    }    @Override    public View getView(final int i, View view, ViewGroup viewGroup) {        final Person person = mList.get(i);//获取到具体项        if(view == null) {//如果视图不为空再进行创建            //用LayouInflater加载布局,传给布局对象view            //用view找到三个控件,存放在viewHolder中,再把viewHolder储存到View中            //完成了把控件展示在ListView的步骤            view = LayoutInflater.from(mContext).inflate(R.layout.item_layout,                    viewGroup, false);            mViewHolder = new ViewHolder();//初始化viewHolder对象            mViewHolder.checkBox = view.findViewById(R.id.check_Box);            mViewHolder.personImage = view.findViewById(R.id.person_image);            mViewHolder.personName = view.findViewById(R.id.person_name);            view.setTag(mViewHolder);//将ViewHolder对象加入到Tag中        }else {            mViewHolder = (ViewHolder) view.getTag();        }        //复选框设置改变监听事件        mViewHolder.checkBox.setOnCheckedChangeListener                (new CompoundButton.OnCheckedChangeListener() {                    @Override                    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {                        person.setCheck(b);//设置状态                    }                });        //设置具体项的内容        mViewHolder.personName.setText(person.getName());        mViewHolder.personImage.setImageResource(person.getImageId());        mViewHolder.checkBox.setChecked(person.getIsCheck());        return view;//将设置好的视图进行返回    }    //holder类    class ViewHolder {        ImageView personImage;        TextView personName;        CheckBox checkBox;    }}

Android studio :适配器控件_第4张图片
Android studio :适配器控件_第5张图片

更多相关文章

  1. Android适配器之-----SimpleCursorTreeAdapter
  2. android 控件抖动
  3. Android适配器之---SimpleCursorAdapter
  4. Android UI控件的初识
  5. android保存第一次安装状态并初始化数据
  6. android 日期选择控件 DatePicker
  7. Android 双向拖动控件(类似 SeekBar)
  8. android之RecycleView适配器添加点击事件

随机推荐

  1. 在Android中解析ls 命令得到目录列表的方
  2. android下大文件分割上传
  3. android 单元测试cmd 命令集
  4. 【Android】Navigation初试-官方demo分析
  5. 如何将android(gingerbread)源码导入eclips
  6. activity启动模式
  7. Eclipse中导入Android工程
  8. [android]控件EditText常用属性
  9. Android(安卓)菜单(OptionMenu)大全 建立
  10. 怎么在android的XML文件里加入凝视