Adapter

ArrayAdapter、SimpleAdapter、BaseAdapter 设置设配器的方法

//BaseAdapter的使用方法

public class MainActivity extends Activity {

    private ListView listView;
    private ArrayList<String> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 1.找到控件
        listView = (ListView) findViewById(R.id.list);
        // 2.获取填充适配器的数据
        list = new ArrayList<String>();
        for (int i = 0; i < 100; i++) {
            list.add("这是条目" + i);
        }
        // 3.为listview去设置数据
        listView.setAdapter(new baseAdapater());
        //listView点击每一项item时候的监听的响应方法setOnItemClickListener
        listView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Toast.makeText(MainActivity.this,position+"被点击",0).show();
            }
        });
    }

    public class baseAdapater extends android.widget.BaseAdapter {
        // 自定义适配器继承BaseAdapter
        // 得到listview所显示的条目总数
        @Override
        public int getCount() {
            return list.size();
        }

        // 返回当前条目所显示的内容
        // position是listview的索引
        @Override
        public Object getItem(int position) {
            return list.get(position);
        }

        // 返回当前位置的索引,就 是当前条目的id
        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            /**
             * View.inflate() context上下文内容 resource拿到我所解析的xml文件
             * root是否有父控件,一般情况下这个地方为空
             */

            View view = View.inflate(MainActivity.this, R.layout.item_layout,
                    null);
            TextView textView = (TextView) view.findViewById(R.id.text);
            textView.setText(list.get(position));
            return view;
        }

    }

}

//ArrayAdapter的使用方法

import android.os.Bundle;
import android.app.Activity;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

    private ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      //拿到listview
        listView = (ListView) findViewById(R.id.list);
        
        String[] books = new String[100 ];
      //拿数据
        for (int i = 0; i < books.length; i++) {
            books[i]="这是第"+i+"本书";
        }
      //拿到ArrayAdapter适配器去适配
        listView.setAdapter(new ArrayAdapter<String>(MainActivity.this,R.layout.activity_second,R.id.text,books));
    }

}


//SimpleAdapter的使用方法

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import com.bwie.daylistviewsimpleadapter.R;
import android.os.Bundle;
import android.app.Activity;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {

    private ListView listView;
    private ArrayList<Map<String, String>> arrayList;
    private HashMap<String, String> hashMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      //找到listview
        listView = (ListView) findViewById(R.id.list);
      //拿到数据
        arrayList = new ArrayList<Map<String, String>>();
        hashMap = new HashMap<String,String>();
        for (int i = 0; i <100; i++) {
            hashMap.put("icon","图标1");
            hashMap.put("name", "张三");
            arrayList.add(hashMap);
        }
      //拿到适配器去适配
        listView.setAdapter(new SimpleAdapter(MainActivity.this,arrayList,R.layout.activity_second,new String[]{"icon","name"},new int[]{R.id.icon,R.id.name}));
    }
    
}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperMonsterH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值