文档章节

android -各种适配器

LizRose
 LizRose
发布于 2016/03/02 09:49
字数 532
阅读 19
收藏 0

参考文章:http://blog.csdn.net/a_large_swan/article/details/7535337

数据源不同而已
1. String[]: ArrayAdapter
2. List<Map<String,?>>: SimpleAdapter
3. 数据库Cursor: SimpleCursorAdapter


第一种参考

如果仅仅将数组的内容显示到ListView 上ArrayAdapter就够了
public classTest extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        String[] sw = new String[10];
        for (int i = 0; i < 10; i++) {
            sw[i] = "List_" + i;
        }
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,sw);//使用系统已经实现好的xml文件simple_list_item_1
        setListAdapter(adapter);
    }
}




大概就是这三种,第一种的话一定要是string[]数组才可以,不能用ArrayList<string>,需要转换一下才可以使用。


写一下第二种用法:

一,mainActivity.class

1,数组类型:

ArrayList<HashMap<String,Object>>
2,适配器类型


SimpleAdapter
/**第一个参数:context

第二个参数:数组

第三个参数:适配器样式布局

第四个参数:hashmap中需要显示出来的key值

第五个参数:适配器样式布局中与hashmap中需要显示出来的key值对应的控件

//显示分类列表
        listItem=getALLlist();
        SimpleAdapter listadapet=new SimpleAdapter(sortlist_java.this,
        listItem,
        R.layout.list_adapter,
        new String[]{"image","task_type"},
       new int[]{R.id.imageView2,R.id.textView3});



二、
R.layout.list_adapter界面
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent"
    android:layout_height="45dp"
    android:background="@color/white"

    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity">


    <ImageView
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:id="@+id/imageView2"
        android:background="@drawable/type_two"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:layout_alignBottom="@+id/textView3"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/textView3"
        android:textSize="20dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="30dp"
        android:layout_marginTop="15dp" />


</LinearLayout>



三、数组取值问题:

ArrayList<HashMap<String,Object>>


//获取数据库的所有待办信息到List
    public ArrayList<HashMap<String,Object>>   getALLlist_todo() {
        MySqliteHelper mySqliteHelper=new MySqliteHelper(this,"mydata.db",null,1);  //mydata.db的数据库
        ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String , Object>>();
        SQLiteDatabase db = mySqliteHelper.getReadableDatabase();
        Cursor c = db.query("my_table", new String[]{"_id", "task", "date", "task_type","cycle_time","remark","state","done_time"}, null, null, null, null, null);

        if (c != null) {
            while (c.moveToNext()) {
                HashMap<String, Object> item = new HashMap<String, Object>();

                if(c.getString(c.getColumnIndex("state")).equals("todo")) {
                    item.put("_id", c.getInt(c.getColumnIndex("_id")));
                    item.put("task", c.getString(c.getColumnIndex("task")));
                    item.put("date", c.getString(c.getColumnIndex("date")));
                    item.put("task_type", c.getString(c.getColumnIndex("task_type")));
                    item.put("cycle_time", c.getString(c.getColumnIndex("cycle_time")));
                    item.put("remark", c.getString(c.getColumnIndex("remark")));
                    item.put("state", c.getString(c.getColumnIndex("state")));
                    item.put("done_time",c.getString(c.getColumnIndex("done_time")));
                    item.put("image", R.drawable.quan1);



                    list.add(item);

                }

            }
        }
        c.close();
        return list;
    }





© 著作权归作者所有

共有 人打赏支持
LizRose
粉丝 2
博文 47
码字总数 33108
作品 0
苏州
程序员
Android深入浅出系列之Bluetooth—蓝牙操作(一)

  一:什么是蓝牙     1:Bluetooth是目前使用最广泛的无线通讯协议,近距离无线通讯的标准。传说瑞典有个国王特别爱吃蓝莓导致自己的牙齿天天都是蓝色的,在他执政期间这位国王非常善...

芋头被人用掉了
2015/05/19
0
0
android 常用第三方插件收藏

1、android-vertical-slide-view : 仿照淘宝和聚美优品,在商品详情页,向上拖动时,可以加载下一页。使用ViewDragHelper,滑动比较流畅。 2、Android-MaterialRefreshLayout :这是一个下拉...

ch10mmt
06/26
0
0
使用AutoCompleteTextView控件的步骤

第一步:在布局文件中定义控件 <AutoCompleteTextView android:id="@+id/actv" android:layoutwidth="fillparent" android:layoutheight="wrapcontent" /> 第二步:在Activity中引用 AutoCo......

罗森
2012/12/14
0
0
在android的spinner中,实现取VALUE值和TEXT值

为了实现在android的spinner实现取VALUE值和TEXT值,我尝试过好些办法,在网上查的资料,都是说修改适配器,刚开始我也是通过修改适配器的方法来做的,但是如果一个activity有多个spinner,就...

感觉太煽情
2015/10/30
0
0
Android之ListView和ArrayAdapter的组合使用

ListView在android中的列表显示。主要是用于数据的显示,通常是从网络上解析出来的数据,显示到ListView上。可以显示很多行,每一行习惯上称之为item。而要控制ListView总共要显示多少个ite...

墨宇hz
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js 操作cookie

var cookie = {// 设置cookie方法set:function(key, val, time){// 获取当前时间var date = new Date();// 将date设置为n天以后的时间var expiresDays = time;//...

小丶二
24分钟前
1
0
限制root远程登录 su和sudo命令

9月21日任务 3.7 su命令 3.8 sudo命令 3.9 限制root远程登录 对于Linux而言,权限的重要性毋庸置疑!对于普通用户而言无法执行那些只有root用户才能有效的命令,导致工作无法有效进行; 系统...

robertt15
25分钟前
2
0
MQTT协议的初浅认识之通讯级别和持久会话

背景 这是我最近了解MQTT协议的最后一部分内容了,MQTT协议里面的QOS和Keep Alive是两个比较重要的内容。QOS的设置,直接影响了订阅客户端与中间件之间的消息交互行为。而Keep Alive直接影响...

亚林瓜子
27分钟前
1
0
calc

width: calc(100% - 30px); 特别注意:减号左右空格,均不能去掉。 width: calc(100% - 30px);

柴高八斗之父
36分钟前
1
0
Spring Cloud Gateway全局过滤器GlobalFilter:返回消息和重定向

Spring Cloud Gateway的全局过滤器GlobalFilter,顾名思义,声明后会对所有的请求生效,可以用来做权限控制,这里简单记录一下拦截到非法请求后如何返回自定义信息和将请求重定向到指定URL。...

夜雨寄北09
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部