Android开发网站收藏,及BaseAdapter使用

收藏地址:http://www.oschina.net/android

Android 中万能的 BaseAdapter(Spinner,ListView,GridView) 的使用!

地址: http://www.oschina.net/question/195301_31331

BaseAdapter(基础适配器)的用法,适配器的作用主要是用来给诸如(Spinner,ListView,GridView)来填充数据的。而(Spinner,ListView,GridView)都有自己的适配器(记起来麻烦)。但是BaseAdapter(一招鲜)对他们来说却是通用的,为什么这么说呢,首先我们看一下API文档:

我们看一下BaseAdapter已经实现了ListAdapter和SpinnerAdapter的接口,而GridView的适配器是实现了ListAdapter接口,只不过是二维的。所以说BaseAdapter对他们三者来说是通用的。

下面我来说一下BaseAdapter的主要用法.就是我们定义一个类(如:MyAdapter)而这个类继承BaseAdapter.因为它是implements了ListAdapter和SpinnerAdapter的接口,所以要实现里面的方法,代码如下(未作任何改动的):

01 private class MyAdapter extends BaseAdapter{ 
02     @Override 
03     public int getCount() { 
04         // TODO Auto-generated method stub  
05         return 0
06     
07     @Override 
08     public Object getItem(int arg0) { 
09         // TODO Auto-generated method stub  
10         return null
11     
12     @Override 
13     public long getItemId(int position) { 
14         // TODO Auto-generated method stub  
15         return 0
16     
17     @Override 
18     public View getView(int position, View convertView, ViewGroup parent) { 
19         // TODO Auto-generated method stub  
20         return null
21     
22        
23    }

为了便于大家理解,老规矩写一个简单的Demo,大家按我的步骤来就OK了.
第一步:新建一个Android工程命名为BaseAdapterDemo.
第二步:修改main.xml代码如下:
01 <?xml version="1.0" encoding="utf-8"?> 
02 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
03     android:orientation="vertical" 
04     android:layout_width="fill_parent" 
05     android:layout_height="fill_parent" 
06     
07     <TextView   
08         android:layout_width="fill_parent"  
09         android:layout_height="wrap_content"  
10         android:text="Welcome to Mr Wei's Blog" 
11     /> 
12     <Spinner   
13         android:id="@+id/spinner" 
14         android:layout_width="fill_parent"  
15         android:layout_height="wrap_content" 
16     /> 
17       <ListView   
18         android:id="@+id/listview" 
19         android:layout_width="fill_parent"  
20         android:layout_height="wrap_content" 
21     /> 
22       <GridView   
23         android:id="@+id/gridview" 
24         android:layout_width="fill_parent"  
25         android:layout_height="wrap_content" 
26     /> 
27 </LinearLayout>

第三步:修该BaseAdapterDemo.java代码如下:
01 package com.tutor.baseadapter; 
02 import android.app.Activity; 
03 import android.graphics.Color; 
04 import android.os.Bundle; 
05 import android.view.View; 
06 import android.view.ViewGroup; 
07 import android.widget.BaseAdapter; 
08 import android.widget.GridView; 
09 import android.widget.ListView; 
10 import android.widget.Spinner; 
11 import android.widget.TextView; 
12 public class BaseAdapterDemo extends Activity { 
13       
14     private Spinner mSpinner; 
15     private ListView mListView; 
16     private GridView mGridView; 
17     private MyAdapter mMyAdapter; 
18     @Override 
19     public void onCreate(Bundle savedInstanceState) { 
20         super.onCreate(savedInstanceState); 
21         setContentView(R.layout.main); 
22         setupViews(); 
23     
24        
25     public void setupViews(){ 
26         mMyAdapter = new MyAdapter(); 
27         mSpinner = (Spinner)findViewById(R.id.spinner); 
28         mSpinner.setAdapter(mMyAdapter); 
29         mListView = (ListView)findViewById(R.id.listview); 
30         mListView.setAdapter(mMyAdapter); 
31         mGridView = (GridView)findViewById(R.id.gridview); 
32         mGridView.setAdapter(mMyAdapter); 
33         mGridView.setNumColumns(2); 
34        
35     
36        
37     //定义自己的适配器,注意getCount和getView方法  
38     private class MyAdapter extends BaseAdapter{ 
39         @Override 
40         public int getCount() { 
41             // 这里我就返回10了,也就是一共有10项数据项  
42             return 10
43         
44         @Override 
45         public Object getItem(int arg0) { 
46             return arg0; 
47         
48         @Override 
49         public long getItemId(int position) { 
50             return position; 
51         

你可能感兴趣的:(android,ListView,Blog,layout,文档,encoding)