Android关于listView的详细内容

原创 2017年01月03日 09:20:43

listView的常用属性:

android:cacheColorHint---设置拖动时候产生的背景色  

 android:dividerHeight---item之间分隔高度   

android:divider---item之间分隔的背景或者说是颜色   

android:fadingEdge="vertical",上边缘和下边缘有黑色阴影,设置为none的话就没有阴影。 

android:scrollbars="horizontal|none":只有值为horizontal|vertical的时候,才会显示滚动条,并且会自动影藏和显示   

android:fastScrollEnabled="true"://快速滚动效果,配置这个属性,在快速滚动的时候旁边会出现一个小方块的快速滚动效果,自动隐藏和显示   

android:listSelector----//设置选中项显示的可绘制对象,可以是图片或者颜色属性


listView的常用方法:

void addHeaderView(View v)---增加一个固定在列表顶部的View,参数 v为欲添加的视图 ,头布局是可以添加多个的,要注意一下。

    private void header() {
//        设置头布局
        ImageView imageView = new ImageView(this);
        imageView.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 200));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setImageResource(R.drawable.yuanyuan);
        lv.addHeaderView(imageView);
    }

Void  addFooterView(View v)--- Add a fixed view to appear at the bottom of the list,添加底部布局

    private void footer() {
//        设置尾布局
        View footer = getLayoutInflater().inflate(R.layout.lv_footer, null);
        lv.addFooterView(footer);
    }

Void  setSelection(int position):直接定位到列表中的指定位置item,使其直接处于可见范围之内,不需要滚动拉动。

Void  setEmptyView(tv)---当listview适配的列表是空的时候,展示的view,它的使用必须要注意一点:

setEmptyView()这个方法是有限制的,这个View必须在当前的View hierarchy的节点上,我们可以自己写在当前布局文件里面,也可以写在外面,但是需要 把View添加到当前的View hierarchy的节点上。
Eg:
TextView tv = new TextView(this);
tv.setTextColor(Color.WHITE);
tv.setText("暂时没有数据");
tv.setGravity(Gravity.CENTER);
((ViewGroup) lv.getParent()).addView(tv);
lv.setEmptyView(tv);

    private void emptyView() {
//     设置emPtyView:当listview没有列表数据的时候,所要显示的view(和listview在同一个ui结构中)
        ImageView emptyView = new ImageView(this);
        emptyView.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup
                .LayoutParams.MATCH_PARENT));
        emptyView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        emptyView.setImageResource(R.drawable.nodata);
        ((ViewGroup) lv.getParent()).addView(emptyView);
        lv.setEmptyView(emptyView);
    }

listView的常用监听方法:

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    }
});

listView的Adapter设置:

1、ArrayAdapter:

特点:数组资源适配器,适配数据item内容只需要一个控件表示的简单资源适配器

用法:ArrayAdapter<String> adapter = new ArrayAdapter<>

           (JyOrderListActivity.this, android.R.layout.simple_list_item_1, new String[]{"order1", "order2"});		              ArrayAdapter(Context context, int ViewResourceId, List<T> objects);

public class ArrayAdapterTest<S> extends Activity {

    private ListView listview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        listview=new ListView(this);
        listview.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,getData()));
        setContentView(listview);
    }

    private List<String> getData() {
        List<String> data = new ArrayList<String>();
        data.add("武汉");
        data.add("北京");
        data.add("长沙");
        data.add("深圳");

        return data;
    }
}
2、SimpleAdapter:

用法:SimpleAdapter simpleAdapter = new SimpleAdapter(JyOrderListActivity.this,data,

   		R.layout.jyorder_item,
                new String[]{"tv0", "tv1", "tv2", "tv3", "tv4", "tv5", "tv6"},
                new int[]{R.id.tv0, R.id.tv1, R.id.tv2, R.id.tv3, R.id.tv4, R.id.tv5, R.id.tv6});

public class SimpleAdapter extends Activity {

    @Bind(R.id.lv)
    ListView lv;
    @Bind(R.id.activity_simple_adapter)
    RelativeLayout activitySimpleAdapter;

    private List<Map<String,Object>> item;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_simple_adapter);
        ButterKnife.bind(this);

        item = new ArrayList<Map<String, Object>>();
        initData();

        android.widget.SimpleAdapter simpleAdapter = new android.widget.SimpleAdapter(this, item, R.layout.item_news,
                new String[]{"title", "tip1", "tip2", "icon"}, new int[]{R
                .id.tv_title, R.id.tv_tip1, R.id
                .tv_tip2, R.id.iv2});
        lv.setAdapter(simpleAdapter);
    }

    private void initData() {
        Map<String, Object> map1 = new HashMap<>();
        map1.put("title", "北京警方突查涉黄俱乐部后多为名人辟谣\"被抓\"传闻");
        map1.put("tip1", "要闻");
        map1.put("tip2", "1023评");
        map1.put("icon", R.drawable.t1);
        item.add(map1);

        Map<String, Object> map2 = new HashMap<>();
        map2.put("title", "一文读懂2016:世界末日如此疯狂");
        map2.put("tip1", "国际");
        map2.put("tip2", "1023评");
        map2.put("icon", R.drawable.t1);
        item.add(map2);

        Map<String, Object> temp = new HashMap<>();
        temp.put("title", "NBA正视频直播太阳VS火箭");
        temp.put("tip1", "直播");
        temp.put("tip2", "4630评");
        temp.put("icon", R.drawable.t1);
        item.add(temp);

        for (int i = 0; i <= 10; i++) {
            Map<String, Object> temp2 = new HashMap<>();
            temp2.put("title", "NBA正视频直播太阳VS火箭");
            temp2.put("tip1", "直播");
            temp2.put("tip2", "4630评");
            temp2.put("icon", R.drawable.t1);
            item.add(temp2);
        }
    }
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

android listview显示数据库中内容

  • 2013年04月06日 21:07
  • 592KB
  • 下载

【android】EditText监听,根据输入内容查询数据并动态更新ListView

EditText监听,根据输入内容查询数据并动态更新ListView 在android系统里,我们可以通过对EditText进行监听,如果内容发生了改变就执行某项操作就行。...

android ListView显示和隐藏二级内容

  • 2015年01月19日 22:30
  • 469KB
  • 下载

Android ScrollView滚动 + ListView无滚动条加载全部内容

Android实现 ScrollView+ListView无滚动条滚动,即ListView的数据会全部显示完,但Listview无滚动条。 核心代码如下: 1. NoScrollListV...

Android开发经验分享-GridView、ListView内容错乱

Android开发经验分享-GridView、ListView内容错乱
  • zmywly
  • zmywly
  • 2014年07月16日 20:19
  • 1673

Android ListView中嵌套EditText,随着软件盘的出现和消失,EditText焦点和内容混乱的问题

这是小小Android程序员的我,发表的第一篇博客,若有什么不足,请提出来,谢谢。若资料,代码涉嫌抄袭的,也请提出来,一定删改~~~今天项目里需要实现一个功能,就是类似于京东app评论那块。评论嘛,需...

Android开发——listview中嵌套checkBox复选框实现单选、全选删除列表内容

Android开发——listview中嵌套checkBox复选框实现单选、全选删除列表内容 listView中嵌套复选框进行条目的选中删除操作,我们经常会用到,比如:购物车清单中的商品添加删除,...
  • jxnk25
  • jxnk25
  • 2015年12月19日 14:20
  • 2644
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android关于listView的详细内容
举报原因:
原因补充:

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