关于listview的控件引用.SimpleAdapter

原创 2015年11月18日 20:35:48

private SimpleAdapter sAdapter;  sAdapter= new SimpleAdapter(context, data, resource, from, to);

context指的是上下文。

data是数据源。

resource是指自身身创建的排版。

from指键值名,为map键值,可自定义,作用可以使定义自己排版控件名的作用,例如控件中有些文本的作用是信息,价格等用new string[]。

to是指向resource排版的所有控件的id,用new int[]来说明。

sAdapter= new SimpleAdapter(context, data, resource, from, to);

创建private List<Map<String, Object>>List; 

list=new ArrayList<Map<String,Object>>(); 为多个map创建数组。

添加滚动事件。滚动刷新。

即实现一个借口OnScrollListener,具体方法是 在onScrollStateChanged(AbsListView arg0, int arg1)方法中,

用switch(arg1)实现滚动事件的刷新。

在case SCROLL_STATE_FLING:中添加你所要刷新的数据源。手指没离开屏幕,往上滑动。

最后要加上一个  sAdapter.notifyDataSetChanged()刷新数据源的更新,否侧会出现崩溃。

部分代码:

public class MainActivity extends Activity implements OnScrollListener{
private ListView listView;
private SimpleAdapter sAdapter;
private List<Map<String, Object>>list;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView=(ListView) findViewById(R.id.listView1);
        list=new ArrayList<>();//这一句一定要加上 !!!!!!
        sAdapter=new SimpleAdapter(this, getdata(), R.layout.item,new String[]{"pic","mess","price"}, new int[]{R.id.pic,R.id.textView1,R.id.textView2});
        listView.setAdapter(sAdapter);
        listView.setOnScrollListener(this);//记得在每一个方法都要创建或者寻找id。
     
    }
private List<Map<String, Object>> getdata(){
 
for (int i = 0; i <20; i++) {
Map<String, Object>map4=new HashMap<>();
map4.put("pic", R.drawable.icbikaq);
map4.put("mess", "一枚金币");
map4.put("price", "$18");
list.add(map4);

}


return list;



}
@Override
public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub

}
@Override
public void onScrollStateChanged(AbsListView arg0, int arg1) {
// TODO Auto-generated method stub
switch(arg1)
{
case SCROLL_STATE_FLING:
Map<String, Object>map=new HashMap<>();
map.put("pic", R.drawable.icbikaq);
map.put("price", "免费");
map.put("mess", "呵呵呵");
list.add(map);
sAdapter.notifyDataSetChanged();//不加这句的话程序会崩溃,刷新数据。重新获得焦点?
break;
case SCROLL_STATE_IDLE:
break;
case SCROLL_STATE_TOUCH_SCROLL:
break;
}
}


}


相关文章推荐

Android基础 | 控件基础 | Listview之SimpleAdapter

SimpleAdapter的构造函数: public SimpleAdapter (Context context, List> data, int resource, String[] from,...

Android控件之ListView与SimpleAdapter

SimpleAdapter:用来绑定在xml中定义的控件对应的数据。 SimpleAdapter的使用非常简单,同时它的功能也非常强大。可以通过它自定义ListView中的item的内容,比如图...

Android常见控件之SimpleAdapter和ListView

一、SimpleAdapter      SimpleAdapter是一个简单的适配器,可以将静态数据映射到XML文件中定义好的视图。你可以指定数据支持的列表如ArrayList组成的Map。在Arr...

Listview控件使用SimpleAdapter适配器实现屏幕下滑增加一个item选项以及用到的方法总结

很多时候我们用安卓app的时候有下滑到底部的时候会自动加载新的数据,今天学习了Listview控件使用SimpleAdapter适配器实现屏幕下滑增加一个item选项的功能,功能差不多,用户下滑到底部...

Android UI设计——ListView控件与SimpleAdapter适配器(三)

SimpleAdapter  SimpleAdapter也是Android自己提供的一个Adapter适配器,它与ArrayAdapter不同的是ArrayAdapter需要使用Android自己定义...

Android 基本控件使用六(ListView+SimpleAdapter)

项目技术:利用 ListView + SimpleAdapter 将 name 和 number 显示出来   在每项显示多种数据的时候 我们可以使用 HashMap 来存放数据 实现如下图: ...

【Android基础】listview控件的使用(3)------Map与SimpleAdapter组成的多显示条目的Listview

前面介绍的两种listview的使用都是最基础的,所以有很大的局限性,比如只能在一个item(即每一行的条目)中显示一个文本信息,这一篇我将介绍Map与SimpleAdapter组成的多显示条目的Li...

Listview(下拉刷新,第三方插件XMLListView、PulltoRefresh),SimpleAdapter、BaseAdapter(适配器),优化,AsyncTask(异步任务,后台刷新)

下拉刷新 XMLLsitView PulltoRefresh
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于listview的控件引用.SimpleAdapter
举报原因:
原因补充:

(最多只允许输入30个字)