Android入门第24天-Adapter使用初步-最简单的一个Adapter的使用

Posted TGITCIC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android入门第24天-Adapter使用初步-最简单的一个Adapter的使用相关的知识,希望对你有一定的参考价值。

Adapter介绍

开始进入高级一些的组件的讲解了,后面章节会大量使用到ListView,在讲ListView前就必须带着这个Adapter的概念去做讲解。

Adapter其实就是MVC的概念, 举个例子:大型的商业程序通常由多人一同开发完成,比如有人负责操作接口的规划与设计, 有人负责程序代码的编写如果要能够做到程序项目的分工就必须在程序的结构上做适合的安排。

上面就是Adapter以及继承结构图了,接着我们介绍一下实际开发中还用到的几个Adapter吧!

  • BaseAdapter:抽象类,实际开发中我们会继承这个类并且重写相关方法,用得最多的一个Adapter;
  • ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字;
  • SimpleAdapter:同样具有良好扩展性的一个Adapter,可以自定义多种效果;
  • SimpleCursorAdapter:用于显示简单文本类型的listView,一般在数据库那里会用到,已经过时,我们教程里不会讲解;

多说无益,写代码最实际,接下来我们来用写几个简单的Adapter实例, 帮助我们了解Adapter给我们带来的便利,另外,因为Adapter需要结合ListView, GridView等等控件讲解,一些高级一点的用法我们都放在ListView那里讲!

因此,现在我们就来看一个最简单的ListView的使用吧。

课程目标

我们今天要实现这个ListView,使用的就是Adapter。

有一种Adapter叫ArrayAdapter<String> ,它的用法如下:

package org.mk.android.demo.demobasicadapter;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
import java.util.ArrayList;
import java.util.List;
 
public class MainActivity extends AppCompatActivity 
    List<String> titleList=new ArrayList<String>();
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //要显示的数据
        titleList.add("雷神");
        titleList.add("基神");
        titleList.add("基神");
        ArrayAdapter<String> adapter = new ArrayAdapter<String>
                (this,android.R.layout.simple_expandable_list_item_1,titleList);
        //获取ListView对象,通过调用setAdapter方法为ListView设置Adapter设置适配器
        ListView listView = (ListView) findViewById(R.id.listView);
        listView.setAdapter(adapter);
    

 我们来看这个简单例子的UI端代码

<?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"
    android:orientation="vertical"
    tools:context=".MainActivity">
 
    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

 自然,它就能实现上述这个运行效果。

当然,它只是实现了一个很简单的List View的应用。我们要实现进一步更复杂点的如下面这种效果我们就需要使用到SimpleAdapter这个类:

SimpleAdapter:看似简单,功能强大,很多实际场景中其实都会使用到SimpleAdapter。我们会在下篇中着重讲述如何使用Simple Adapter来实现上述这样的一个复杂布局。

 

以上是关于Android入门第24天-Adapter使用初步-最简单的一个Adapter的使用的主要内容,如果未能解决你的问题,请参考以下文章

Android入门第60天-MVVM中的Databinding与ListView结合使用

Android入门第60天-MVVM中的Databinding与ListView结合使用

Android入门第27天-GrdidView控制件和可复用的Adapter

Android入门第29天-Android里如何巧用Spinner做弹出选择对话框

Android入门第21天-Android里TextClock的使用

Android入门第65天-mvvm模式下的retrofit2+okhttp3+rxjava