在Android中自定义适配器

啊喂,好久没更新博客了,唉唉,真是抱歉啊!求原谅!

1、自定义列表项适配器的主要方法是:

①public int getCount()=====>此方法用来控制列表项的个数

②public View getView(int position, View convertView, ViewGroup parent)====>此方法用来控制页面

2、自定义适配器在实际开发中使用的非常灵活也非常广泛,因为,此方法一定要掌握。(虽然也有现成的适配器,但是在实际开发中使用不多)

3、在自定义适配器的过程中,需要创建一个BaseAdapter对象,扩展该对象需要重写如下四个方法:

①getCount():该方法的返回值控制该Adapter将会包含多少个列表项;

②getItem(int position):该方法的返回值决定第position处的列表项的内容;

③getItemId(int position):该方法的返回值决定第position处的列表项的ID;

④getView(int position, View convertView, ViewGroup parent):该方法的返回值决定第position出的列表项组件。

4、具体实现代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="match_parent"
	android:layout_height="match_parent" >
<ListView
    android:id="@+id/myList"
	android:layout_width="match_parent"
	android:layout_height="match_parent"/>
</LinearLayout>
package com.example.baseadaptert;

import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.app.Activity;
import android.content.Context;

public class BaseAdapterT extends Activity {

	private ListView myList;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myList = (ListView) findViewById(R.id.myList);

        final String names[] = new String[]{"xiaoming", "xiaohua", "xiaomi", "xiaomei"};
        final int images[] = new int[] {R.drawable.libai, R.drawable.nongyu, R.drawable.qingzhao, R.drawable.tiger};
//        final int layoutID = R.layout.item;
        myList.setAdapter(new BaseAdapter() {

        	@Override
			public int getCount() {
				return names.length;
			}

			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				Activity activity = (Activity) BaseAdapterT.this;
//				LinearLayout out = (LinearLayout) activity.getLayoutInflater().inflate(position, null);
				LinearLayout out = (LinearLayout) activity.getLayoutInflater().inflate(R.layout.item, null);
				ImageView iv = (ImageView) out.findViewById(R.id.imageView);
				iv.setImageResource(images[position]);
				TextView tv = (TextView) out.findViewById(R.id.textView);
				tv.setText(names[position]);
				return out;
			}

			@Override
			public long getItemId(int position) {
				// TODO Auto-generated method stub
				return 0;
			}

			@Override
			public Object getItem(int position) {
				// TODO Auto-generated method stub
				return null;
			}

		});

        myList.setOnItemClickListener(new OnItemClickListener() {// 设置点击监听器
			@Override
			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
				Toast.makeText(view.getContext(), names[position], 1).show();
			}
		});
    }
}



时间: 2024-08-07 00:17:28

在Android中自定义适配器的相关文章

android中自定义下拉框(转)

android自带的下拉框好用不?我觉得有时候好用,有时候难有,项目规定这样的效果,自带的控件实现不了,那么只有我们自己来老老实实滴写一个新的了,其实最基本的下拉框就像一些资料填写时,点击的时候出现在编辑框的下面,然后又很多选项的下拉框,可是我在网上找了一下,没有这种下拉框额,就自己写了一个,看效果图先: ,这个是资料填写的一部分界面,三个下拉框,选择故乡所在地: 点击之后弹出下拉框,选择下面的选项: 三个下拉框时关联的,第一个决定了第二数据内容,第二个决定了第三个数据内容,如果三个全部选好之后

Android:自定义适配器

无论是ArrayAdapter还是SimpleAdapter都继承了BaseAdapter,自定义适配器同样继承BaseAdapter 实例:Gallery实现图片浏览器 <?xml version="1.0" encoding="utf-8"?> <Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/g

Android中自定义下拉样式Spinner

Android中自定义下拉样式Spinner 本文继续介绍android自定义控件系列,自定义Spinner控件的使用. 实现思路 1.定义下拉控件布局(ListView及子控件布局) 2.自定义SpinerPopWindow类 3.定义填充数据的Adapter 效果图 一.定义控件布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http:/

Android中自定义View的MeasureSpec使用

有时,Android系统控件无法满足我们的需求,因此有必要自定义View.具体方法参见官方开发文档:http://developer.android.com/guide/topics/ui/custom-components.html 一般来说,自定义控件都会去重写View的onMeasure方法,因为该方法指定该控件在屏幕上的大小. protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec) onMeasure传

Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案

如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView 的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为 false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了 我们可以通过对Item Layout的根控件设置其android:descendantFocusability="blo

android中自定义view涉及到的绘制知识

android中自定义view的过程中,需要了解的绘制知识. 1.画笔paint: 画笔设置: <span style="font-size:14px;"> paint.setAntiAlias(true);//抗锯齿功能 paint.setColor(Color.RED); //设置画笔颜色 paint.setStyle(Style.FILL);//设置填充样式 paint.setStrokeWidth(30);//设置画笔宽度 paint.setShadowLayer(

Android中自定义视图View之---前奏篇

前言 好长时间没写blog了,心里感觉有点空荡荡的,今天有时间就来写一个关于自定义视图的的blog吧.关于这篇blog,网上已经有很多案例了,其实没什么难度的.但是我们在开发的过程中有时候会用到一些自定义的View以达到我们所需要的效果.其实网上的很多案例我们看完之后,发现这部分没什么难度的,我总结了两点: 1.准备纸和笔,计算坐标 2.在onDraw方法中开始画图,invalidate方法刷新,onTouchEvent方法监听触摸事件 对于绘图相关的知识,之前在弄JavaSE相关的知识的时候,

Android 中自定义软键盘

Android 中自定义软键盘    图一为搜狗输入法.图二为自定义密码键盘.图三为自定义密码键盘 java源文件 package com.keyboarddemo; import android.content.Context; import android.graphics.Paint; import android.graphics.Rect; import android.text.method.PasswordTransformationMethod; import android.u

[转]Android中自定义样式与View的构造函数中的第三个参数defStyle的意义

转自:http://www.cnblogs.com/angeldevil/p/3479431.html Android中自定义样式与View的构造函数中的第三个参数defStyle的意义 零.序 一.自定义Style 二.在XML中为属性声明属性值 1. 在layout中定义属性 2. 设置Style 3. 通过Theme指定 三.在运行时获取属性值 1. View的第三个构造函数的第三个参数defStyle 2. obtailStyledAttributes 3. Example 四.结论与代