大二寒假作业之Android

今日学习了数据适配器ArrayAdapter与BaseAdapter.

ArrayAdapter相比SimpleAdapter较为简单而且只能用一组数据,其余与SimpleAdapter类似。

BaseAdapter就较为复杂了,首先要新建一个类继承BaseAdapter,并重写四个方法。

getCount()要绑定的数据条目,用size()函数即可获取。

getItem(int position)根据索获取该位置的对象,一般可以不用重写。

getItemId(int position)获取条目id可以不用重写。

getView(int position,View convertView,ViewGroup parent)获取该条目要显示的界面。

若convertView为空就要获取布局文件:convertView= LayoutInflater.from(context).inflate(R.layout.list_item,null);

然后通过convertView获取控件id然后给控件赋值即可。下面为代码:

public View getView(int position, View convertView, ViewGroup parent) {
        if(convertView==null)
        {
            convertView= LayoutInflater.from(context).inflate(R.layout.list_item,null);
        }
        ImageView imageview=convertView.findViewById(R.id.image1);
        TextView textview1=convertView.findViewById(R.id.text1);
        Button button=convertView.findViewById(R.id.button1);
        Map<String,Object> map=lists.get(position);
        imageview.setImageResource((Integer) map.get("imageViews"));
        textview1.setText((String)map.get("name"));
        button.setOnClickListener(
                new View.OnClickListener(){
                    public void onClick(View view){
                        AlertDialog.Builder builder=new AlertDialog.Builder(context);
                        builder.setTitle("( ゜- ゜)つロ 乾杯~").setIcon(R.mipmap.ic_launcher).
                                setMessage((String)map.get("content")).setCancelable(true);
                        AlertDialog ad=builder.create();
                        ad.show();
                    }
                });
        return convertView;
    }

效果截图:

 

posted @ 2021-02-06 19:58  风吹过半夏  阅读(54)  评论(0编辑  收藏  举报