Android Studio的适配器Adapter以及Adapterview的使用

Android Studio的适配器Adapter以及Adapterview的使用

适配器模式:实现原理类似于数据模型M负责存放数据,通过控制器C将数据显示在相应的视图V上。

数据源:数据、集合、游标

适配器:ArrayAdapter、SimpleAdapter、SimpleCursorAdapter、BaseAdapter

控件:AutoCompleteTextView(自动提示框)、Spinner(下拉列表)、ListView(列表)、GridView(网络图)

适配器

适配器在AdapterView控件和数据源之间扮演着桥梁的角色,提供访问数据源的入口,将从数据源取出的数据项逐项加到AdapterView控件中。

1、ArrayAdapter:适用于列表项只含有文本信息的情况

2、SimpleAdapter:即可以处理列表项全是文本的情况,又可以处理列表项包含其他控件(如图片、文本、按钮等)情况

3、SimpleCursorAdapter:专门用来把一个Cursor中的数据映射到列表中,Cursor中的每一条数据映射为列表中的一项。

4、BaseAdapter:根据xml文件中定义的样式进行列表项的填充,完全自定义数据适配方式,适用性最强。

基本步骤

1、创建数据源,创建AdapterView控件

2、创建适配器

3、绑定数据源

常用的AdapterView

AutoCompleteTextView+ArrayAdapter适配器

AutoCompleteTextView可以根据用户的输入弹出一个智能提示的下拉列表,这样便可以选择相应的选项,当输入的字符串符合数据源里的选项就会出现相关的选项。

ArrayAdapter:

public ArrayAdapter(Context context,int resource,int textViewResourceId,Object[] object,List object);

Context context:Context上下文对象

int resource:对应列表项item的布局文件ID

int textViewResourceId:列表项item布局中对应的TextView的ID

Object[] object:需要显示数据的数组

List object:需要显示数据的集合

布局显示的xml页面:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <AutoCompleteTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/autoCompletetextview"
        android:completionHint="国家列表"
        tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>

后台代码:

package com.example.adapter;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.widget.Adapter;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class MainActivity extends AppCompatActivity {
   
    //定义全局变量
    private AutoCompleteTextView autoCompleteTextView;
    //适配器变量
    private ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //定义数据源
        String[] context = new String[]{
   "China","Britain","Russia","Canada","U.S.A","Chile","Germany"};
        //绑定控件
        autoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.autoCompletetextview);
        //创建Adapter
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,context);

        //将控件绑定到适配器
        autoCompleteTextView.setAdapter(adapter);
        //设置输入的字符的颜色
        autoCompleteTextView.setTextColor(Color.YELLOW);

        //设置输入1个字符后开始提示
        autoCompleteTextView.setThreshold(1);
    }
}
Spinner控件+ArrayAdapter适配器

Spinner是下拉列表控件,当用户点击控件时,下拉列表控件弹出选项列表给用户选择,每次只显示用户选择的选项

Spinner可以有两种方式加载数据:

1、在res/values文件下准备一个数组资源文件,事先定义好要加载的数据资源

2、直接在java代码中使用ArrayAdapter对象。

获取用户点击的下拉列表的选项,可以使用setOnItemSelectedListener()方法。

方法一代码:

布局页面XML代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_heig
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值