91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

ArrayAdapter適配不同數據源方法

小樊
82
2024-10-12 08:49:02
欄目: 編程語言

ArrayAdapter 是 Android 中用于將數據與列表視圖(如 ListViewGridViewSpinner)進行綁定的類。要使用 ArrayAdapter 適配不同的數據源,你需要創建一個自定義的適配器類,該類繼承自 ArrayAdapter 并重寫相關方法。以下是一個簡單的示例,展示了如何創建一個適配器類以適配兩種不同的數據源:

  1. 首先,創建一個自定義的適配器類,例如 CustomArrayAdapter,并繼承自 ArrayAdapter
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import java.util.List;

public class CustomArrayAdapter extends ArrayAdapter<Object> {

    public CustomArrayAdapter(Context context, int resource, List<Object> objects) {
        super(context, resource, objects);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // 獲取當前項的數據
        Object item = getItem(position);

        // 檢查數據類型并進行相應的處理
        if (item instanceof String) {
            // 如果數據是字符串,使用一個 TextView 顯示
            TextView view = (TextView) convertView;
            if (view == null) {
                view = new TextView(getContext());
            }
            view.setText((String) item);
            return view;
        } else if (item instanceof Integer) {
            // 如果數據是整數,使用另一個 TextView 顯示
            TextView view = (TextView) convertView;
            if (view == null) {
                view = new TextView(getContext());
            }
            view.setText(String.valueOf((Integer) item));
            return view;
        }

        // 如果數據類型不匹配,返回 null 或拋出異常
        return null;
    }
}
  1. 在你的 Activity 或 Fragment 中,創建一個 CustomArrayAdapter 實例并綁定到列表視圖:
import android.os.Bundle;
import android.widget.ListView;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

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

        // 創建數據源
        List<Object> data = new ArrayList<>();
        data.add("Hello");
        data.add(42);
        data.add(true);

        // 創建適配器并綁定到列表視圖
        CustomArrayAdapter adapter = new CustomArrayAdapter(this, android.R.layout.simple_list_item_1, data);
        ListView listView = findViewById(R.id.listView);
        listView.setAdapter(adapter);
    }
}

在這個示例中,我們創建了一個 CustomArrayAdapter 類,它可以處理兩種不同類型的數據:字符串和整數。在 getView 方法中,我們檢查數據類型并根據類型創建相應的 TextView。然后,在 Activity 中,我們創建了一個包含不同類型數據的列表,并使用 CustomArrayAdapter 將其綁定到 ListView

0
五寨县| 盱眙县| 桑日县| 莎车县| 建德市| 湄潭县| 凤冈县| 墨玉县| 中西区| 繁峙县| 秦皇岛市| 黄浦区| 天水市| 平度市| 郎溪县| 安阳县| 岳普湖县| 前郭尔| 闽清县| 泸水县| 增城市| 雷州市| 漾濞| 镇远县| 夏津县| 丹江口市| 葵青区| 白玉县| 和田市| 沂南县| 永州市| 米易县| 宜良县| 理塘县| 承德市| 东海县| 师宗县| 五大连池市| 修水县| 西吉县| 来凤县|