Android——BaseAdapter相关

layout文件:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.hanqi.testapp2.TestActivity8">
11
12     <ListView
13         android:layout_width="match_parent"
14         android:layout_height="match_parent"
15         android:id="@+id/lv_3"></ListView>
16 </LinearLayout>

java类:

  1 package com.hanqi.testapp2;
  2
  3 import android.support.v7.app.AppCompatActivity;
  4 import android.os.Bundle;
  5 import android.util.Log;
  6 import android.view.View;
  7 import android.view.ViewGroup;
  8 import android.widget.BaseAdapter;
  9 import android.widget.ImageView;
 10 import android.widget.ListView;
 11 import android.widget.TextView;
 12
 13 import java.util.ArrayList;
 14 import java.util.List;
 15
 16 public class TestActivity8 extends AppCompatActivity {
 17
 18     ListView lv_3;
 19     List<MyClass> lm;
 20     @Override
 21     protected void onCreate(Bundle savedInstanceState) {
 22         super.onCreate(savedInstanceState);
 23         setContentView(R.layout.activity_test8);
 24
 25         lv_3 = (ListView)findViewById(R.id.lv_3);
 26
 27         //数据集合
 28         lm = new ArrayList<>();
 29         MyClass myClass = new MyClass(R.drawable.f1,"美食1","美食1的介绍");
 30         lm.add(myClass);
 31         lm.add(new MyClass(R.drawable.f2,"美食2","美食2的介绍"));
 32         lm.add(new MyClass(R.drawable.f3,"美食3","美食3的介绍"));
 33         lm.add(new MyClass(R.drawable.f4,"美食4","美食4的介绍"));
 34         lm.add(new MyClass(R.drawable.f5,"美食5","美食5的介绍"));
 35         lm.add(new MyClass(R.drawable.f6,"美食6","美食6的介绍"));
 36         lm.add(new MyClass(R.drawable.f7,"美食7","美食7的介绍"));
 37         lm.add(new MyClass(R.drawable.f8,"美食8","美食8的介绍"));
 38         lm.add(new MyClass(R.drawable.f9,"美食9","美食9的介绍"));
 39
 40         MyBaseAdapter myBaseAdapter = new MyBaseAdapter();
 41         {
 42             lv_3.setAdapter(myBaseAdapter);
 43         }
 44     }
 45
 46     //装载数据的类 实体类 POJO类
 47     //只包含属性和属性的getter和setter方法
 48     class MyClass
 49     {
 50         //img
 51         private int img;
 52         //name
 53         private String name;
 54         //content
 55         private String content;
 56
 57         public int getImg() {
 58             return img;
 59         }
 60
 61         public void setImg(int img) {
 62             this.img = img;
 63         }
 64
 65         public String getName() {
 66             return name;
 67         }
 68
 69         public void setName(String name) {
 70             this.name = name;
 71         }
 72
 73         public String getContent() {
 74             return content;
 75         }
 76
 77         public void setContent(String content) {
 78             this.content = content;
 79         }
 80         //默认构造方法
 81         public MyClass()
 82         {
 83
 84         }
 85         //直接初始化属性的构造方法
 86         public MyClass(int img,String name,String content)
 87         {
 88             this.img = img;
 89             this.name = name;
 90             this.content = content;
 91         }
 92     }
 93
 94     //内部类继承抽象类BaseAdapter实现4个方法
 95     class MyBaseAdapter extends BaseAdapter
 96     {
 97         @Override
 98         public int getCount() {
 99             return lm.size();
100         }
101
102         @Override
103         public Object getItem(int position) {
104             return lm.get(position);
105         }
106
107         @Override
108         public long getItemId(int position) {
109             return 0;
110         }
111
112         //返回适配完成的视图
113         //convertView 可以复用的视图
114         @Override
115         public View getView(int position, View convertView, ViewGroup parent) {
116
117             //适配一条数据和View
118             //1.得到数据
119             MyClass myClass = lm.get(position);
120
121             if (convertView ==null)
122             {
123                 Log.e("TAG","适配器getView = "+position);
124                 //2.得到 View
125                 //加载layout文件
126                 convertView = View.inflate(TestActivity8.this, R.layout.simple_adapter, null);
127             }
128             //3.把数据放到View里
129             ImageView imageView = (ImageView)convertView.findViewById(R.id.iv_2);
130             imageView.setImageResource(myClass.getImg());
131
132             TextView textView = (TextView)convertView.findViewById(R.id.tv_7);
133             textView.setText(myClass.getName());
134
135             TextView textView1 = (TextView)convertView.findViewById(R.id.tv_8);
136             textView1.setText(myClass.getContent());
137             return convertView;
138         }
139     }
140 }

效果图为:

时间: 2024-08-29 04:01:20

Android——BaseAdapter相关的相关文章

Android UI相关开源项目库汇总

最近做了一个Android UI相关开源项目库汇总,里面集合了OpenDigg 上的优质的Android开源项目库,方便移动开发人员便捷的找到自己需要的项目工具等,感兴趣的可以到GitHub上给个star. 抽屉菜单 MaterialDrawer ★7337 - 安卓抽屉效果实现方案 Side-Menu.Android ★3865 - 创意边侧菜单 FlowingDrawer ★1744 - 向右滑动流动抽屉效果 SlidingRootNav ★1338 - 仿DrawerLayout的View

[Android]蓝牙相关接口及方法

首先,要操作蓝牙,先要在AndroidManifest.xml里加入权限 <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permissionandroid:name="android.permission.BLUETOOTH" /> 然后,看下api,Android所有关于蓝牙开发的类都在android.bluetooth包下,共有8个类

我的Android开发相关文章

Pro Android学习笔记: Pro Android学习笔记(一零七):2D动画(2):layout渐变动画 2014.7.25 Pro Android学习笔记(一零六):2D动画(1):frame by frame 2014.7.21 Pro Android学习笔记(一零五):Alarm Manager(3):request code 2014.7.17 Pro Android学习笔记(一零四):Alarm Manager(2):周期发送和取消 2014.7.15 Pro Android学

android database 相关

以前用database从来都是直接执行,db.execute(). 今天看公司1.0的源码中又学习了一个逻辑, SecureSQLiteDatabase db = null; try { db = mOpenHelper.openDatabase(); db.beginTransaction(); try { todo 数据操作 }; //db 所要执行的操作 db.update(MstDataEntry.TABLE_NAME, values, whereClause, whereArgs);

android 技术相关Blog

android 技术相关 LVXIANGAN的专栏 http://blog.csdn.net/LVXIANGAN/article/category/1101038 Android NFC 开发实例 http://blog.csdn.net/pku_android/article/details/7430788

android录音相关

android的麦克风在现在的生活中发挥着很大的作用,打电话,视频聊天,语音识别等等. android sdk的api里提供了很方便的调用方法,下面写一个小的DEMO. 五个按钮:开始录音,停止,播放,删除录音,保存(令存为) recordBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try{ _recordAudioFile=File.createTempFile("

【ALearning】第二章 Android工程相关知识介绍

本章主要初步介绍Android工程开发环境的搭建,以对Android项目整体的认识与了解.本章包括Android开发环境搭建.第一个Android项目Hello World与Android项目的文件目录结构介绍. Android开发环境搭建 Android开发环境的搭建方式有两种,分别是Eclipse/MyEclipse+ADT+Android SDK和Android Developer Tools.前者方式的开发环境搭建,参看[http://blog.sina.com.cn/s/blog_4e

蛋疼的Android BaseAdapter

1 package com.moniter.helperclasses; 2 3 import java.util.List; 4 5 import android.content.Context; 6 import android.view.LayoutInflater; 7 import android.view.View; 8 import android.view.ViewGroup; 9 import android.widget.BaseAdapter; 10 import andr

Android的相关事件

Android的相关事件 1.Toast信息提醒 import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Toast; public class FirstActivity extends AppCo