zoukankan      html  css  js  c++  java
  • 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,如有不对,希望多多指正。谢谢

  • 相关阅读:
    咨询
    xcode技巧
    礼仪
    asi 网络框架
    iOS 开发问题 书籍 价值 改名 创业大赛app
    PS,UI,美工
    运营推广
    多线程 并发 文章
    手机技巧 文章
    javaScript 类文章
  • 原文地址:https://www.cnblogs.com/tiejiangweigaibianercunzai/p/4011159.html
Copyright © 2011-2022 走看看