日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

(1)Adapter适配器(ArrayAdapter、SimpleAdapter、BaseAdapter)

發(fā)布時(shí)間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (1)Adapter适配器(ArrayAdapter、SimpleAdapter、BaseAdapter) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ArrayAdapter(數(shù)組適配器)

ArrayAdapter只能顯示一行文本數(shù)據(jù)

ArrayAdapter(@NonNull Context context, @LayoutRes int resource, @NonNull T[] objects) {this(context, resource, 0, Arrays.asList(objects))
  • 參數(shù)說(shuō)明:

    1. context上下文對(duì)象
    2. 每一個(gè)item的樣式,(可使用系統(tǒng)提供,也可自定義)
      系統(tǒng)提供的樣式如下
      - simple_list_item1:單獨(dú)的一行文本框
      - simple_list_item2:兩個(gè)文本框
      - simple_list_item_checked:每項(xiàng)是一個(gè)已選中的列表項(xiàng)
      - simple_list_multiple_choice:復(fù)選框
      - simple_list_item_single_choice:單選框
    3. 數(shù)據(jù)源
  • Adapter的使用:

    • 第一種方式

      1.初始化適配器

ArrayAdapter<String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_expandable_list_item1,datas);
  2.綁定適配器
listView.setAdapter(adapter);
  • 第二種方式

在res\value下創(chuàng)建數(shù)組資源的xml文件:arrays.xml

獲取xml中String數(shù)組

 String name[] = getResources().getStringArray(R.array.myArray);

SimpterAdapter【簡(jiǎn)單適配器】

new SimpleAdapter(MainActivity.this,lists,R.layout.list_item
,new String[]{"image","theme","content"}
,new int[]{R.id.image1,R.id.text1,R.id.text2});

  • 參數(shù)說(shuō)明
    • 1.上下文對(duì)象
    • 2.數(shù)據(jù)源,常是一個(gè)含Map的集合
    • 3.item的布局文件
    • 4.new String[]{}數(shù)組,與第2個(gè)參數(shù)中存入的map集合里的key值一一對(duì)應(yīng)
    • new int[],第三個(gè)參數(shù)中的item里面的控件id
  • 基本案例
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ListViewandroid:id="@+id/ll1"android:layout_width="match_parent"android:layout_height="wrap_content"></ListView>
</LinearLayout>

item樣式

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:id="@+id/image1"android:layout_width="100dp"android:layout_height="100dp"android:src="@mipmap/ic_launcher"android:layout_margin="5dp"/><LinearLayoutandroid:id="@+id/ll2"android:layout_width="match_parent"android:layout_height="100dp"android:orientation="vertical"android:layout_marginTop="5dp"android:layout_marginLeft="10dp"><TextViewandroid:id="@+id/text1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="哈哈"android:textSize="30sp"android:layout_marginTop="10dp"/><TextViewandroid:id="@+id/text2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="哈哈哈哈哈"android:textSize="24dp"android:layout_marginTop="10dp"/></LinearLayout>
</LinearLayout>

Java文件

package com.example.test3;import android.app.Activity;
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 Activity{
//    這三個(gè)經(jīng)常是同時(shí)出現(xiàn)的private List<Map<String,Object>> lists;private SimpleAdapter adapter;private ListView listView;
//    定義數(shù)據(jù)private String[] theme = {"張三","李四","王五"};private String[] content ={"我是張三,你好","我是李四,你好","我是王五,你好"};private int[] imageViews = {R.mipmap.ic_launcher,R.mipmap.ic_account,R.mipmap.ic_password};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (ListView) findViewById(R.id.ll1);
//        準(zhǔn)備數(shù)據(jù)源lists = new ArrayList<>();for(int i = 0;i < theme.length;i++){Map<String,Object> map =new HashMap<>();map.put("image",imageViews[i]);map.put("theme",theme[i]);map.put("content",content[i]);lists.add(map);}adapter = new SimpleAdapter(MainActivity.this,lists,R.layout.list_item,new String[]{"image","theme","content"},new int[]{R.id.image1,R.id.text1,R.id.text2});listView.setAdapter(adapter);}
}

效果圖

BaseAdapter

自定義adapter

package com.example.test3;import android.content.Context;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import java.util.ArrayList;
import java.util.List;/*** Created by coder-tu on 2016/1/13.*/
public class MyAdapter extends BaseAdapter {private List<Message> Datas;private Context mContext;public MyAdapter(List<Message> datas, Context mContext) {Datas = datas;this.mContext = mContext;}/*** 返回item的個(gè)數(shù)* @return*/@Overridepublic int getCount() {return Datas.size();}/*** 返回每一個(gè)item對(duì)象* @param i* @return*/@Overridepublic Object getItem(int i) {return Datas.get(i);}/*** 返回每一個(gè)item的id* @param i* @return*/@Overridepublic long getItemId(int i) {return i;}/*** 暫時(shí)不做優(yōu)化處理,后面會(huì)專門整理BaseAdapter的優(yōu)化* @param i* @param view* @param viewGroup* @return*/@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {view = LayoutInflater.from(mContext).inflate(R.layout.list_item,viewGroup,false);ImageView imageView = (ImageView) view.findViewById(R.id.image1);TextView textView1 = (TextView) view.findViewById(R.id.text1);TextView textView2 = (TextView) view.findViewById(R.id.text2);imageView.setImageResource(Datas.get(i).getImageId());textView1.setText(Datas.get(i).getTheme());textView2.setText(Datas.get(i).getContent());
//        此處需要返回view 不能是view中某一個(gè)return view;}
}

Java文件

package com.example.test3;import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;import java.util.ArrayList;
import java.util.List;public class MainActivity extends Activity{
//    這三個(gè)經(jīng)常是同時(shí)出現(xiàn)的private List<Message> lists;private MyAdapter adapter;private ListView listView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (ListView) findViewById(R.id.ll1);lists = new ArrayList<>();lists.add(new Message(R.mipmap.ic_launcher,"張三","你好,我是張三"));lists.add(new Message(R.mipmap.ic_account,"李四","你好,我是李四"));lists.add(new Message(R.mipmap.ic_password,"王五","你好,我是王五"));adapter = new MyAdapter(lists,MainActivity.this);listView.setAdapter(adapter);}
}
  • BaseAdapter的優(yōu)化

轉(zhuǎn)載于:https://www.cnblogs.com/lyszyl/p/10649683.html

總結(jié)

以上是生活随笔為你收集整理的(1)Adapter适配器(ArrayAdapter、SimpleAdapter、BaseAdapter)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。