ListView使用方法

ListView使用方法总结


- 直接使用ListView组件创建列表

- 通过Activity继承ListActivity创建

- 定制ListView界面


直接使用ListView组件创建列表

通过数组资源文件指定列表项

  1. 先在XML布局文件中添加ListView标志,设置好相关属性;在values下创建数组资源文件arrays.xml,添加字符串数组intype
        <resources>
            <string-array name="intype">
                <item>关机</item>
                <item>飞行模式</item>
                <item>重新启动</item>
                <item>数据网络模式</item>
            </string-array>
        </resources>

在ListView布局中使用”android:entries =@arrays/intype”指定列表项

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/list1"
    android:entries="@array/intype">
</ListView>

注意:资源数组只能指定纯文字的列表项
效果:
这里写图片描述


2 . 第二种是使用适配器指定列表项,去掉布局中属性”android:entries =@arrays/intype”,然后在Activity 文件中添加ArrayAdapter (通常用于纯文本列表项) 调用ArrayAdapter.createFromResource()创建适配器

 ListView lst=findViewById(R.id.list1);
        ArrayAdapter <CharSequence> ad = ArrayAdapter.createFromResource(this,
                R.array.intype,android.R.layout.simple_dropdown_item_1line);
        lst.setAdapter(ad);

其中 android.R.layout.simple_dropdown_item_1line用于指定ListView外观形式
常用的有以下几个:
- simple_list_item_1:普通文本
- simple_list_item_2:普通文本,字体较大
- simple_list_item_checked:带有勾选框的列表项
- simple_list_item_multiple_choice:带有多选框文本
- simple_list_item_single_choice:带有单选按钮的文本


通过Activity继承ListActivity创建

将Activity继承ListActivity,删除默认的布局文件,在onCreate()方法中创建适配器,调用setListAdapter()添加

public class MainActivity extends ListActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        String[] ctype = new String[]{"新增支出", "新增收入", "我的支出", "我的收入", "数据管理", "系统设置"};
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice, ctype);

        setListAdapter(adapter);
        getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    }

    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        String result=l.getItemAtPosition(position).toString();
        Toast.makeText(MainActivity.this,result,Toast.LENGTH_SHORT).show();

    }
}

效果:
这里写图片描述


定制ListView界面

1、在默认的布局文件中添加ListView标志

    <ListView
        android:id="@+id/tongxunlu"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </ListView>

2、src/layout中新建XML文件gvitem.xml,用于设置每一个列表的布局样式

    <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/tongxuntu"
                android:scaleType="centrInside"
                android:layout_margin="10dp"/>

            <TextView
                android:id="@+id/tonngxuntext"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:layout_gravity="center_vertical"
                android:textSize="13sp"
                android:textColor="#3b3b3b"/>

    </LinearLayout>

3、在Activity文件中,实例化一个simpleAdapter适配器, List集合类用于添加图标、文本

 public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        list=InitData();
        simpleAdapter=new SimpleAdapter(getActivity(),
                list,
                R.layout.frag2_gvitem,
                new String[]{"image","title"},
                new int[]{R.id.tongxuntu,R.id.tonngxuntext});
        listView.setAdapter(simpleAdapter);

    }

    private List<Map<String,Object>> InitData() {

        String [] name=new String[]{"新的朋友","群聊","标签","公众号"};
        //图片资源
        int [] image=new int[]{R.mipmap.friend,R.mipmap.group,R.mipmap.lable,R.mipmap.pub};

        List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
        for (int i=0;i<image.length;i++)
        {
            Map<String,Object> map=new HashMap<String, Object>();
            map.put("image",image[i]);
            map.put("title",name[i]);
            list.add(map);
        }
        return list;
    }

效果:
这里写图片描述

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值