ListViewでのArrayAdapterとSimpleAdapterの使用法について話しているAndroid

ArrayAdapter

ArrayAdapterの一般的な使用法を説明するコードを使用します。xmlレイアウトについては説明しません。Javaファイルで呼び出せるように、ListViewコントロールを作成し、列にIDを配置する必要があります。実際、主な問題は、配列アダプタの機能を使用して、Javaファイルで必要なビューを実現することです。これは4つのステップに簡単に分割できます。最初のステップは、最初にオブジェクトのプロパティを取得することです。 Javaファイル、つまりid。はい、2番目のステップは、表示するコンテンツリソース(String [] ...textcontentやint[]... photo contentなど)を設定することです( dramble)3番目のステップは、必要なアダプターを構成することです。これで、さまざまな種類のアダプターがあり、使用するものに応じて選択します。たとえば、このセクションではArrayAdapterについて説明します。アダプターコードとしてrrayAdapterを選択する必要があります。たとえば、ArrayAdapter <String> adapter = new ArrayAdapter <String(this、android.R .layout.simple_list_item_1、data);括弧内の3つのパラメーターは、以下に対応します。コンテキストはMainActivity、2番目のパラメーターはitenテンプレート、自分で設定することも、Androidに直接付属しているものを使用することもできます。これを使用します。3番目のパラメーターはリソース、つまり使用する戦士コンテンツのパラメーターです。4番目のステップは、アダプターとリストの間の接続を確立することです。機能の表示を実現するために表示します!

コードは次のように表示されます。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical">
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="30sp"
    android:gravity="center"
    android:text="世界百科"
    />
    <ListView
        android:id="@+id/lv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         />

</LinearLayout>

MainActivity.java

package com.example.listview_arrayadapter;

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);
        //第一步:先获取ListView的控件资源
        ListView listview=this.findViewById(R.id.lv);
        //第二步准备数据库(Array)
        String [] data={"中国","俄罗斯","美国","英国","法国","印度","韩国","朝鲜","意大利","土耳其","阿达里亚","加拿大",
               "缅甸","日本","老挝","蒙古","乌克兰","泰国"};

        //第三步:配置适配器(ArrayAdapter)3个参数,上下文,xml布局资源,数据库源
        ArrayAdapter<String>adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data);

        //第四步:将适配器与ListView经行关联
        listview.setAdapter(adapter);
    }
}

最終的なレンダリング

 SimpleAdapter

また、コードを使用してこの使用法を示し、説明します。単純なアダプターとarraryadapterはどちらもBaseAdapterを継承します。つまり、どちらもBaseAdapterのプロパティを持っています。両者の違いを知りたい場合、難易度の点で、単純なアダプターは多くのパラメーターを使用するため、比較的困難であり、注意しないとめまいがします。方法は基本的に同じです。ここに画像を表示したいのですが、ここでxmlを導入する必要があります。これは、画像ごとに統一されたスタイルのレイアウトをカスタマイズし、以下のIDを挿入できるためです。実装されたJavaファイル関数に注目してください。 。最初のステップはLiatViewのオブジェクトを取得することであり、2番目のステップはコンテンツ(画像またはテキスト)を設定することです。

List <Map <String、Object >> data = new ArrayList <Map <String、Object >>(); 
Map <String、Object> map = new HashMap <String、Object>(); 
map.put( "icon"、 R.drawable.yao); 
data.add(map)
Map <String、Object>はMapコレクション変数を定義し、次にList <Map <String、Object>>はマップコレクションであるListコレクション変数を定義します。mapはそのリストの値の1つ。

List <Map <String、Object> list = new ArrayList <Map <String、Object >>();
Map <String、Object> map = new HashMap <String、Object>();
  
data.add(map); // map

このようにして、ListViewの多くの画像リソースの1つを取得します。別の画像を取得して表示する場合は、

map = new HashMap <String、Object>(); 
map.put( "icon"、R.drawable.diaochan); 
data.add(map);クラス推

知らせ

アダプターを構成する場合(括弧内の5つのパラメーターは、コンテキスト、データパラメーター、アイテムのxmlレイアウトファイル、および名前とIDです)

写真の横にタイトル(文字名)やメッセージ(文字の紹介)を追加するなど、より多くのものを表示したい場合は、作成したxmlファイルで2つのテキストビューを同時に設定できます。 List <Map <String、Object >> data = new ArrayList <Map <String、Object >>(); Map <String、Object> map = new HashMap <String、Object>(); Add map.put( "title、 "タイトルコンテンツ");およびmap.put( "メッセージ"、 "メッセージコンテンツ");

コードは次のように表示されます。

MainActivity.java

package com.example.listview_simpleadapter;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import java.util.ArrayList;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取对象
        ListView listview =this.findViewById(R.id.lv);
        //设置数据库(你的展示内容)
        List<Map<String,Object>> data=new ArrayList<Map<String,Object>>();//定义了一个List集合变量
        Map<String,Object> map= new HashMap<String,Object>();//定义了一个Map变量
        map.put ("icon",R.drawable.yao);//将其yaotp放入map集合
        data.add(map);//将其map添加到data集合变量中去,map是data中的其中一个值。

        map= new HashMap<String,Object>();
        map.put ("icon",R.drawable.libai);
        data.add(map);

        map= new HashMap<String,Object>();
        map.put ("icon",R.drawable.diaochan);
        data.add(map);
        //配置适配器(以上用到的为SimpleAdapter方法则应选用SimpleAdapter适配器)(括号5个参数分别为:上下文,数据参数,item的xml布局文件,以及名称和id)
        SimpleAdapter adapter=new SimpleAdapter(this,data,R.layout.layout_item,new String []{"icon"},new int[]{R.id.icon});

      //将适配器与ListView的控件建立起联系
        listview.setAdapter(adapter);
    }
}

レンダリング

 さて、次号ではリストビューとリサイクルビューの違いと効率について説明します!

おすすめ

転載: blog.csdn.net/Abtxr/article/details/123948786