Andriod开发 Adapter ArrayAdapter

一、Adapter

Adapter 是一个非常重要的组件,用于将数据与视图进行绑定。

一般的用法是一个View中要显示多个布局相同但数据不同的item(例如论坛界面的多个帖子,购物车里的多个商品)。

可以将item的布局和数据输入Adapter,View使用Adapter,就可以得到多个布局相同、内容不同的item了。

Adapter 通常用于在 ListView、RecyclerView、Spinner 等组件中显示数据。Adapter 的作用是将数据转换成视图,以便用户可以查看和操作数据。

Andriod开发 Adapter ArrayAdapter_第1张图片

Adapter 有多种类型,包括 ArrayAdapter、CursorAdapter、SimpleAdapter、BaseAdapter 等。

不同的 Adapter 类型适用于不同的数据源和视图类型。

 二、ArrayAdapter示例

 ArrayAdapter是最简单的适配器,只展示一行文字。通过使用ArrayAdapter,可以快速了解适配器的使用方法。

Andriod开发 Adapter ArrayAdapter_第2张图片

1)item的布局文件

因为 ArrayAdapter每个item只显示一行文字,所有放一个TextView就可以了




 2)View使用Spinner,有下拉列表和对话框两种模式




    

    

    

    

3)使用Adapter绑定item和数据,Spinner使用该Adapter

ArrayAdapter adapter = new ArrayAdapter<>(this,R.layout.item_select,stars);
sp_dropdown.setAdapter(adapter);
设置Spinner默认选择第一项
sp_dropdown.setSelection(0);
监听Spinner选择item的动作
sp_dropdown.setOnItemSelectedListener(this);
package com.example.chapter08;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class SpinnerActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

    public static final String[] stars = {"Venus",  "Earth", "Jupiter", "Mars", "Mercury"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_spinner);
        Spinner sp_dropdown = findViewById(R.id.sp_drop);
        ArrayAdapter adapter = new ArrayAdapter<>(this,R.layout.item_select,stars);
        sp_dropdown.setAdapter(adapter);
        sp_dropdown.setSelection(0);
        sp_dropdown.setOnItemSelectedListener(this);

        Spinner sp_dialog = findViewById(R.id.sp_dialog);
        sp_dialog.setAdapter(adapter);
        sp_dialog.setSelection(0);
        sp_dialog.setOnItemSelectedListener(this);
    }
    
    @Override
    public void onItemSelected(AdapterView adapterView, View view, int i, long l) {
        Toast.makeText(this,"You select " + stars[i],Toast.LENGTH_LONG).show();

    }

    @Override
    public void onNothingSelected(AdapterView adapterView) {

    }
}

4)效果图:

Andriod开发 Adapter ArrayAdapter_第3张图片

Andriod开发 Adapter ArrayAdapter_第4张图片

你可能感兴趣的:(APP开发,android,java)