日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【转】BaseAdapter用法

發(fā)布時(shí)間:2025/3/21 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】BaseAdapter用法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)自:http://blog.csdn.net/wangjia55/article/details/7430759

大家好,今天給大家講解一下Android BaseAdapter(基礎(chǔ)適配器)的用法,適配器的作用主要是用來(lái)給諸如(Spinner、ListView、GridView)來(lái)填充數(shù)據(jù)的。而(Spinner、ListView、GridView)都有自己的適配器(記起來(lái)麻煩)。但是BaseAdapter(一招鮮)對(duì)他們來(lái)說(shuō)卻是通用的,為什么這么說(shuō)呢,首先我們看一下API文檔:

我們看到Android BaseAdapter已經(jīng)實(shí)現(xiàn)了ListAdapter和SpinnerAdapter的接口,而GridView的適配器是實(shí)現(xiàn)了ListAdapter接口,只不過(guò)是二維的。所以說(shuō)BaseAdapter對(duì)他們?nèi)邅?lái)說(shuō)是通用的。

下面我來(lái)說(shuō)一下BaseAdapter的主要用法,就是我們定義一個(gè)類(lèi)(如:MyAdapter)而這個(gè)類(lèi)繼承BaseAdapter.因?yàn)樗莍mplements了ListAdapter和SpinnerAdapter的接口,所以要實(shí)現(xiàn)里面的方法,代碼如下(未作任何改動(dòng)的):

private class MyAdapter extends BaseAdapter {@Overridepublic int getCount() {// TODO Auto-generated method stubreturn 0;}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubreturn null;} }

為了便于大家理解,老規(guī)矩寫(xiě)一個(gè)簡(jiǎn)單的Demo,大家按我的步驟來(lái)就OK了。

第一步:新建一個(gè)Android工程命名為BaseAdapterDemo

第二步:修改main.xml代碼如下:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Welcome to Mr Wei's Blog" /><Spinnerandroid:id="@+id/spinner"android:layout_width="fill_parent"android:layout_height="wrap_content"/><ListViewandroid:id="@+id/listview"android:layout_width="fill_parent"android:layout_height="wrap_content"/><GridViewandroid:id="@+id/gridview"android:layout_width="fill_parent"android:layout_height="wrap_content"/> </LinearLayout>

第三步:修該BaseAdapterDemo.java代碼如下:

package com.tutor.baseadapter;import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ListView; import android.widget.Spinner; import android.widget.TextView;public class BaseAdapterDemo extends Activity {private Spinner mSpinner;private ListView mListView;private GridView mGridView;private MyAdapter mMyAdapter;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);setupViews();}public void setupViews() {mMyAdapter = new MyAdapter();mSpinner = (Spinner) findViewById(R.id.spinner);mSpinner.setAdapter(mMyAdapter);mListView = (ListView) findViewById(R.id.listview);mListView.setAdapter(mMyAdapter);mGridView = (GridView) findViewById(R.id.gridview);mGridView.setAdapter(mMyAdapter);mGridView.setNumColumns(2);}// 定義自己的適配器,注意getCount和getView方法private class MyAdapter extends BaseAdapter {@Overridepublic int getCount() {// 這里我就返回10了,也就是一共有10項(xiàng)數(shù)據(jù)項(xiàng)return 10;}@Overridepublic Object getItem(int arg0) {return arg0;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// position就是位置從0開(kāi)始,convertView是Spinner,ListView中每一項(xiàng)要顯示的view// 通常return 的view也就是convertView// parent就是父窗體了,也就是Spinner,ListView,GridView了.TextView mTextView = new TextView(getApplicationContext());mTextView.setText("BaseAdapterDemo");mTextView.setTextColor(Color.RED);return mTextView;}} }

第四步:運(yùn)行程序效果圖如下:

效果圖一:

效果圖二:

下面是我們的重點(diǎn)了,我們平常看的應(yīng)用列表什么的,不是單單的一個(gè)TextView就可以了事的,所以我們可以在Layout里事先定義好布局。這里我新建了一個(gè)名叫baseadapter_provider.xml文件,代碼如下:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="fill_parent"><ImageViewandroid:id="@+id/imageView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/icon"/><TextViewandroid:id="@+id/textview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="BaseAdapter"/> </LinearLayout>

將getView()方法修改如下:

@Override public View getView(int position, View convertView, ViewGroup parent) {// position就是位置從0開(kāi)始,convertView是Spinner,ListView中每一項(xiàng)要顯示的view// 通常return 的view也就是convertView// parent就是父窗體了,也就是Spinner,ListView,GridView了.// TextView mTextView = new TextView(getApplicationContext());// mTextView.setText("BaseAdapterDemo");// mTextView.setTextColor(Color.RED);// return mTextView;//LayoutInflater不會(huì)的參照我的 Android 高手進(jìn)階教程(五)convertView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.baseadapter_provider,null);TextView mTextView = (TextView)convertView.findViewById(R.id.textview);mTextView.setText("BaseAdapterDemo" + position);mTextView.setTextColor(Color.RED);return convertView; }

再次運(yùn)行看一下效果圖如下:

轉(zhuǎn)載于:https://www.cnblogs.com/dingchao823/p/4811205.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的【转】BaseAdapter用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。