列表常用Adapter,自定义Adapter

    科技2025-08-01  10

    ArrayAdapter实现单行文本ListView: (1)定义一个数组存放ListView中item的内容 (2)通过实现ArrayAdapter的构造方法创建一个ArrayAdapter对象 (3)通过ListView的setAdapter()方法绑定ArrayAdapter <ListView android:id="@+id/lv_array" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="#d9d9d9" android:dividerHeight="1dp" > </ListView>

    后台代码: 使用系统自带布局文件的不同效果: A、android.R.layout.simple_list_item_1 B、android.R.layout.simple_list_item_checked C、android.R.layout.simple_list_item_multiple_choice D、android.R.layout.simple_list_item_single_choice

    private String[] sArray = null; //List<Object> //不定长 //List<double> //List<String> private List<String> listTitle=null; private void init() { //1.创建数据源 sArray = new String[10]; for(int i=0;i<10;i++){ sArray[i]="hello"+(i+1); }; //2.创建适配器 //第一个参数this,第二个参数布局文件:android.R.layout.simple_list_item_1为系统自带文件 第三个参数数据源:sArray为数据源 ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, sArray ); //3.将适配器绑定到ListView ListView lst_Array = ((ListView) findViewById(R.id.lv_array)); //进行绑定 lst_Array.setAdapter(arrayAdapter);

    //设置多选模式

    //2.创建适配器 ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, listTitle ); //3.将适配器绑定到ListView事件 ListView lst_Arraty = (ListView) findViewById(R.id.lv_array); //设置选择模式,多选CHOICE_MODE lst_Arraty.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);; lst_Arraty.setAdapter(arrayAdapter);

    //设置自定义列表 activity_main.xml

    <ListView android:id="@+id/lv_simple" android:layout_width="match_parent" android:layout_height="match_parent" android:dividerHeight="1dp" android:divider="#d9d9d9" > </ListView>

    list_item.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" > //gravity:线性布局里的控件对齐方式,在TextVIew是文本里的内容 <ImageView android:id="@+id/iv_item" android:layout_width="48dp" android:layout_height="48dp" android:background="@drawable/wx" android:layout_margin="8dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Echat" android:textSize="20sp" android:layout_margin="8dp" /> </LinearLayout>

    后台代码

    public class MainActivity extends AppCompatActivity { private List<HashMap<String,Object>> lst = null; private int[] iArray = {R.drawable.dz, R.drawable.jd, R.drawable.qq, R.drawable.tm, R.drawable.uc, R.drawable.wx, R.drawable.xl}; private String[] sArray={"斗地主","京东","球球","大猫","UC浏览器","微信","新浪"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init() { //创建数据源 lst = new ArrayList<HashMap<String,Object>>(); for(int i=0;i<7;i++){ HashMap<String,Object> map = new HashMap<String, Object>(); map.put("icon",iArray[i]); map.put("title",sArray[i]); lst.add(map); } //创建Adapter,第一个上下文this,第二个数据源,第三个每一行的布局文件 // SimpleAdapter adapter = new SimpleAdapter(this, lst,R.layout.list_item,new String[]{"icon","title"}, new int[]{R.id.iv_item,R.id.tv_item} ); //绑定到ListView方法 final ListView iv_simple = (ListView) findViewById(R.id.lv_simple); iv_simple.setAdapter(adapter); //添加事件 iv_simple.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String strObj = iv_simple.getItemAtPosition(position).toString(); //点击获取当前一行,给map是一个HashMap数组 HashMap<String,Object> map = (HashMap<String,Object>) iv_simple.getItemAtPosition(position); Toast.makeText(MainActivity.this, map.get("title").toString(), //显示当前map中的title Toast.LENGTH_SHORT).show(); } }); } }
    Processed: 0.013, SQL: 8