首页 > 代码库 > 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的简单使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。