Android ListView

Java核心代码:

package com.example.demolistview1;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MultipleListViewActivity extends ListActivity {

    private static final String[] DATA = { "开始加班了", "哈哈哈", "不告诉你们",
            "就是不告诉你们呀!", "Hello World!", "java", "C#", "item1", "item2",
            "apple", "test" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_multiple_choice, DATA);

        // 使用ListActivity中的setListAdapter
        setListAdapter(arrayAdapter);

        // 获取ListActivity中的ListView
        final ListView listView = getListView();

        // setChoiceMode方法:
        // 表名有选项,如果不设置,缺省为none,即点击后仍无反应
        listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);
        Toast.makeText(getApplicationContext(), DATA[position],
                Toast.LENGTH_SHORT).show();
    }
}

备注:

该示例中使用了Android系统提供的ListActivity创建ListView,与普通的Activity的不同在于 ListActivity中自带一个ListView的控件,在ListActivity中可以通过getListView()方法得到 ListActivity中的ListView,并可以通过setListAdapter()方法为ListView设置Adapter。

ArrayAdapter的构造函数的第一个参数为Context,在这里设置为this就好了。第二个参数决定了ListView的不同风 格,android.R.layout.simple_list_item_multiple_choice为多选的风格。最后一个参数决定了 ArrayAdapter使用的String数组,DATA数组。
其中,第二个参数还可以是:
android.R.layout.simple_list_item_1
android.R.layout.simple_list_item_2
android.R.layout.simple_list_item_single_choice
android.R.layout.simple_list_item_checked
通过字面意思便可以理解,读者可以自己测试一下。
另外,需要注意的是,仅仅在ArrayAdapter中设置为多选风格是不行的,运行工程会发现点击不同的选项,多选框没有反应。需要通过ListView的setChoiceMode(ListView()方法才可以实现多选的效果。

原文地址:https://www.cnblogs.com/xiaoxian1369/p/3644662.html