首页 > 代码库 > android 当中baseAdapter的简单使用

android 当中baseAdapter的简单使用

  Android BaseAdapter(基础适配器)的用法,适配器的作用主要是用来给诸如(Spinner、ListView、GridView)来填充数据的。而(Spinner、ListView、GridView)都有自己的适配器(记起来麻烦)。但是若直接使用baseAdapter的话就不用担心这个问题了,首先看看API中的大致介绍

这些就知道为什么baseAdapter是一招鲜了,因为它是实现了adapter,listadapter,spinneradapter的。接下来看一个继承了baseAdapter的类要重写的一些方法:

package com.example.baseadapterforgridview;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.TextView;public class MainActivity extends Activity {    private GridView mGridView;    private mBaseAdapter baseAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        baseAdapter = new mBaseAdapter();        mGridView = (GridView)findViewById(R.id.gridView);        mGridView.setAdapter(baseAdapter);                    }    class mBaseAdapter extends BaseAdapter{        @Override        public int getCount() {            // TODO Auto-generated method stub            return 42;        }        @Override        public Object getItem(int position) {            // TODO Auto-generated method stub            return null;        }        @Override        public long getItemId(int position) {            // TODO Auto-generated method stub            return 0;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            // TODO Auto-generated method stub            LayoutInflater inflater = LayoutInflater.from(MainActivity.this);            View mView = inflater.inflate(R.layout.item, null);//            TextView mTextView = new TextView(getApplicationContext());//            mTextView.setText("BaseAdapterDemo");//            mTextView.setTextColor(Color.RED);            return mView;        }            }     }

gridview的xml文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.baseadapterforgridview.MainActivity" >     <GridView        android:id="@+id/gridView"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:stretchMode="columnWidth"         android:columnWidth="120dip"         android:verticalSpacing="10dip"        android:horizontalSpacing="10dip"        android:cacheColorHint="@android:color/transparent"        android:numColumns="auto_fit"        >    </GridView></RelativeLayout>

每一个item里面的布局文件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView         android:id="@+id/text"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="texViewtest"/>    <Button         android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="test"/></LinearLayout>

执行的效果:

可以看到,每一个item里面包括了两个元素,一个是textview的内容,另一个是一个button。

在getview()方法里面被注释掉的是一种“加载”布局文件的方法,而使用LayoutInflater~~ 又是另外一种加载xml的方式,这样做的好处是把已经在xml里面定义好的布局文件直接加载拿过来使用。

好啦,这就是一个简单的baseAdapter使用demo,如有不对,希望多多指正。谢谢

android 当中baseAdapter的简单使用