博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android BaseAdapter使用介绍
阅读量:6912 次
发布时间:2019-06-27

本文共 3140 字,大约阅读时间需要 10 分钟。

hot3.png

类概述

    BaseAdapter主要用于ListView(实现指定的ListAdapter接口)、Spinner(实现指定的SpinnerAdapter接口)以及GridView的共同实现一个公共基类适配器。

假如现在我们要实现一个MyAdapter类:

//........上面省略了n行代码;class MyAdapter extends BaseAdapter{        //用来接收传递过来的Context上下文对象        private Context context;        //构造函数        public MyAdapter(Context context)        {            this.context = context;        }        @Override        public int getCount() {            //返回图片数组大小            return pics.length;        }        @Override        public Object getItem(int position) {            //根据选中项返回索引位置            return position;        }        @Override        public long getItemId(int position) {            //根据选中项id返回索引位置            return position;        }     /**     * @param position      position就是位置从0开始     * @param convertView   convertView是Spinner,ListView中每一项要显示的view     * @param parent        parent就是父窗体了,也就是Spinner,ListView,GridView了     * @return              通常return 的view也就是convertView     * 绘制的内容均在此实现     */        @Override        public View getView(int position, View convertView, ViewGroup parent) {        //未优化的getView,这部分可以使用recycle()释放内存、或者BitmapFacotry.Options缩小,或者软引用,或者控制图片资源大小等等很多方法            ImageView img=new ImageView(context);            img.setAdjustViewBounds(true);            img.setImageResource(pics[position]);            img.setScaleType(ImageView.ScaleType.FIT_XY);            img.setLayoutParams(new Gallery.LayoutParams(120,120));            return img;        }    }

 缺失的Main.java的代码入下:

package yaowen.com.baseadapter_gallery;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageView;import android.widget.TextView;public class Main extends AppCompatActivity {    private Gallery gallery;    private ImageView imageView;    private TextView textView;    //图片数组    private int[] pics={            R.drawable.pic1,R.drawable.pic2,            R.drawable.pic3,R.drawable.pic4,            R.drawable.pic5,R.drawable.pic6    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        imageView= (ImageView) findViewById(R.id.imageView);        gallery= (Gallery) findViewById(R.id.gallery);        textView= (TextView) findViewById(R.id.textView);        MyAdapter adapter=new MyAdapter(this);        gallery.setAdapter(adapter);        gallery.setOnItemClickListener(new Gallery.OnItemClickListener(){            @Override            public void onItemClick(AdapterView
 parent, View view, int position, long id) {                int i=position+1;                imageView.setImageResource(pics[position]);                textView.setText("这是第"+i+"张图片");            }        });    }     //........这里上面的代码 }

下面是main.xml的代码:

    
    
    
        

运行效果图:

135524_2IwL_2391602.png

135525_RqEt_2391602.png

转载于:https://my.oschina.net/yaowen424/blog/527303

你可能感兴趣的文章
Ubuntu下用命令行快速打开各类型文件(转)
查看>>
Magento多语言设置——优化前台与后台实现方法
查看>>
leetcode121买股票
查看>>
SQL SERVER 2008中启用相应的功能
查看>>
Implementing a small Cron service in C# - CodeProject
查看>>
REST::Neo4p – PERL版本的”OGM”
查看>>
linux中service *** start与直接运行/usr/bin/***的区别
查看>>
剑指offer题目java实现
查看>>
Linux内核之于红黑树and AVL树
查看>>
LoaderManager使用详解(二)---了解LoaderManager
查看>>
EtherCAT对PHY有要求?
查看>>
ios应用内下载并安装另一个应用
查看>>
SQL GROUP BY 语句
查看>>
简单介绍一些HTML代码(字幕、音频和视频)
查看>>
Java——复选框:JCheckBox
查看>>
用android模拟器Genymotion定位元素
查看>>
iOS学习:UILabel和sizeWithFont方法
查看>>
“伴侣”机器人问世 宅男宅女们这下有福了!
查看>>
我的友情链接
查看>>
Android开发 - 更"聪明"的申请权限方式
查看>>