比如说我们已经得到了数据,想在一个listview或者在其他的控件中显示的,并且我们显示想要自己设计样式来显示的话就要用到自定义适配器了,下面让我们结合代码讲一下具体的使用方法:

代码会有注释的哦:

截取的一段得取数据的代码(实例按照读者自己写的代码而定)

 private void selectSpinner(String title,String linNum){
int i = 1 ;
AppMainRoadInfoTab appMainRoadInfoTab = (AppMainRoadInfoTab) getActivity();
SQLiteDatabase db = appMainRoadInfoTab.getDbHelper().getReadableDatabase();
Cursor c = db.rawQuery("select * from tb_Stations inner join tb_carinfo on tb_Stations.LineID = tb_carinfo.LineID where tb_carinfo.Title ='"+title+"' and tb_carinfo.LineNum='"+linNum+"'", null);
List<String> items = new ArrayList<String>();
while(c.moveToNext()){
String name= i +"."+c.getString(c.getColumnIndex("StationName"));
String booble = c.getString(c.getColumnIndex("IsStop"));
if(booble.equals("false")){
name= null;
continue;
}else{
items.add(name);
}
i++;
}
NewBaseAdapter adapter=new NewBaseAdapter(this.getActivity(), items, R.layout.bus_listview_item);
listView.setAdapter(adapter);
}

 第一:比如说我们上述得到了一个String 类型的一个l组ist数据想让这个组数据按照我们心中的样式展现出来,展现出来的话我们就要新建一个xml文件存放你写的控件,还有你自己配置的属性,下面给大家简单的贴一下我写的xml文件代码:listitem.xml

<?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/myListData"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:textSize="20sp"
android:textColor="#C1FFC1"
/>
</LinearLayout>

第二:我们就要新建我们的自定义设配器了代码如下:

 package com.iflytek.adapter;

 import java.util.ArrayList;
import java.util.List; import com.iflytek.iflytekbus.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView; public class NewBaseAdapter extends BaseAdapter{ private Context context;
private ArrayList<String> list;
private int resource;
private LayoutInflater inflater;
public NewBaseAdapter(Context context,List<String> items ,int resource) {
// TODO Auto-generated constructor stub
this.context=context;
this.inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.list=(ArrayList<String>) items;
this.resource=resource;
}
private class ViewHolder{
private TextView txtView;
}
@Override
public int getCount() {//返回list的所有数量
// TODO Auto-generated method stub
return list.size();
} @Override
public Object getItem(int arg0) {//当前的一个对象
// TODO Auto-generated method stub
return list.get(arg0);
} @Override
public long getItemId(int arg0) {//当前对象的一个索引
// TODO Auto-generated method stub
return arg0;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder=new ViewHolder();
if(convertView==null){
String string=list.get(position).toString();
convertView=inflater.inflate(resource, null);
holder.txtView=(TextView)convertView.findViewById(R.id.myListData);
holder.txtView.setText(string);
}
else {
holder=(ViewHolder)convertView.getTag();
}
return convertView;
} }

以上是自定义设配器,在代码中55行就是引用上面的样式布局文件,在界面上显示的效果也就是自己在这个布局文件显示的效果

注意啦:设配器虽然设置好了,我们要引用啊:看第一帖代码的18和19行,里面的参数之一要对应你设置的参数。

不懂的可以留言...一一解释。

【原创】Android自定义适配器的使用方法的更多相关文章

  1. Android自定义View的实现方法,带你一步步深入了解View(四)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回 ...

  2. 【转】Android自定义View的实现方法,带你一步步深入了解View(四)

    原文网址: 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到 ...

  3. [原创]Android自定义View之IndicatorView,显示当前tab页所处位置的View

    概述 Android IndicatorView的灵感来源于SlidingTabView,虽然有句"不重复"造轮子在先,本着练手的目的,还是写了一个功能较为简单的类似view. 其 ...

  4. [原创]android使用代码生成LayerDrawable的方法和注意事项

    为了有更好的UI体验,一般我们会把button.textview等控件的背景设置上阴影.传统的做法是美工提供一张具有阴影效果的nine patch图,然后将其在xml文件中添加到background属 ...

  5. [原创]android自定义动画的一点感悟

    android提供了一系列的动画处理api,包括animator以及animation等.由于动画效果是根据人眼视觉残留原理形成的,因此动画过程中android需要不断频繁的更新view的相关属性,由 ...

  6. android 自定义

    初级: 1.Android自定义View之一:初探实例 ——> onDraw 2.getwidth和getmeasuredwidth的区别以及两者的使用场景 3.Android 自定义View ...

  7. android 自定义view 前的基础知识

    本篇文章是自己自学自定义view前的准备,具体参考资料来自 Android LayoutInflater原理分析,带你一步步深入了解View(一) Android视图绘制流程完全解析,带你一步步深入了 ...

  8. ListView使用自定义适配器的情况下实现适配器的文本和图标控件点击事件执行Activity界面中的方法

    ListView使用的是自定义适配器,列表项的布局文件中含有文本和图标,实现文本区域和图标区域的点击事件. 实现思路:在自定义适配器MyArrayAdapter 类型中自定义接口和接口方法,分别设置文 ...

  9. ListView使用自定义适配器的情况下实现适配器的控件点击事件执行Activity界面中的方法

    如果ListView使用的是自定义的适配器,比如MyArrayAdapter extends ArrayAdapter<String> 那么,如何实现适配器中的点击事件执行activity ...

随机推荐

  1. .NET ORM SqlQuery

    查询 1.SqlQuery 用于执行原生SQL和存储过程 //转成list List<Student> list1 = db.SqlQuery<Student>("s ...

  2. Centos7安装和配置NFS

    (1)nfs简介 作用:通过网络的不同的主机之间共享资源,支持多节点挂载并发写入 特点:单台,适合小型网络集群架构,非常稳定:大型公司使用(mfs,glusterfs,fastdfs) nfs优点:部 ...

  3. Nginx的基本理论

    Nginx是什么? 1).Nginx 就是一台反向代理服务器,代理服务器一般是指局域网内部的机器通过代理服务发送请求到互联网上的服务器,代理服务器一般作用于客户端.比如GoAgent,FQ神器. 一个 ...

  4. 架构设计之NodeJS操作消息队列RabbitMQ

    一. 什么是消息队列? 消息(Message)是指在应用间传送的数据.消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象. 消息队列(Message Queue)是一种应用间的通信 ...

  5. 转:攻击JavaWeb应用[1]-javaEE基础

    http://www.cnblogs.com/oh3o/p/3224562.html JSP: 全名为java server page,其根本是一个简化的Servlet. Servlet:Servle ...

  6. HRBUST 1212 乘积最大

    $dp$,大数运算. $dp[i][j]$表示到$i$位置切成了$j$段的最大收益.数字爆$longlong$,$Java$上大数. import java.math.BigInteger; impo ...

  7. poj 2262 筛法求素数(巧妙利用数组下标!)

    Goldbach's Conjecture Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 41582   Accepted: ...

  8. CodeForces - 524F And Yet Another Bracket Sequence

    题面在这里! (会考完之后休闲休闲2333) 可以发现,如果把一个串中"()"自动删除,最后剩的一定是形如"))))....))(((..((("这样的串,然后 ...

  9. 【数论】【快速幂】【扩展欧几里得】【BSGS算法】bzoj2242 [SDOI2011]计算器

    说是BSGS……但是跟前面那题的扩展BSGS其实是一样的……因为模数虽然是质数,但是其可能可以整除a!!所以这两者其实是一样的…… 第一二种操作不赘述. #include<cstdio> ...

  10. XMPP聊天之Openfire 的安装和配置---Mac OS

    一.下载并安装openfire 1.下载最新的openfire安装文件 官方下载站点:http://www.igniterealtime.org/downloads/index.jsp#openfir ...