Android ListView 列表视图

来源:互联网 发布:wlan未识别的网络win10 编辑:程序博客网 时间:2024/03/29 05:39

ListView 属性

android:entries="@array/listarray" //XML定义列表数组android:divider="#00ff00" //分割线色android:dividerHeight="3dp" //分割线高度

本例定义了4个ListView,第一个ListView列表项通过XML属性实现,第二个ListView列表项通过ListAdapter实现,第三个ListView列表项通过SimpleAdapter

实现,第四个ListView通过BaseAdapter实现列表项。


//XML定义的字符串数组 实现列表项

<resources>
    <string-array name="listarray">
        <item>CheckboxA</item>        <item>RadioBox</item>        <item>ToggleButton</item>        <item>Switch</item>        <item>ImageButton</item>    </string-array></resources>


package shortcut.song.com.myapplication;import android.graphics.Color;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListAdapter;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.TextView;import android.widget.Toast;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class ListViewActivity extends AppCompatActivity {    ListView mListView1;    ListView mListView2;    ListView mListView3;    ListView mListView4;    String listA[] = {            "A","B","C"    };    String listName[] =            {                    "Jceke","Tomao","Karry"            };    int listHeader[] =            {                    R.drawable.img1,                    R.drawable.img2,                    R.drawable.img3,            };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_list_view);        mListView1 = (ListView)findViewById(R.id.listview_list1);        mListView2 = (ListView)findViewById(R.id.listview_list2);        mListView3 = (ListView)findViewById(R.id.listview_list3);        mListView4 = (ListView)findViewById(R.id.listview_list4);        mListView1.setChoiceMode(ListView.CHOICE_MODE_SINGLE);        mListView1.setSelection(1);
//ArrayAdapter实现列表项        ListAdapter listAdapter = new ArrayAdapter(this,                android.R.layout.simple_list_item_multiple_choice ,listA);        mListView2.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);        mListView2.setAdapter(listAdapter);        List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();        for( int i=0; i < listName.length; i++ )        {            Map<String, Object> listItem = new HashMap<String, Object>();            listItem.put("name",listName[i]);            listItem.put("header", listHeader[i]);            listItems.add(listItem);        }
//SimpleAdapter实现列表项        SimpleAdapter simpleAdapter = new SimpleAdapter(this,                listItems,                R.layout.activity_list_view, //Layout xml文件                new String[] {"name", "header"},                new int[] {R.id.listname, R.id.listimage});        mListView3.setAdapter(simpleAdapter);
//BaseAdapter 实现列表项        BaseAdapter baseAdapter = new BaseAdapter() {            @Override            public int getCount() {                return 20;            }            @Override            public Object getItem(int position) {                return null;            }            @Override            public long getItemId(int position) {                return position;            }            @Override            public View getView(int position, View convertView, ViewGroup parent) {                LinearLayout layout = new LinearLayout(ListViewActivity.this);                layout.setOrientation(LinearLayout.VERTICAL);                ImageView image = new ImageView(ListViewActivity.this);                image.setImageResource(R.drawable.alert_dialog_icon);                TextView text = new TextView(ListViewActivity.this);                text.setText("第"+position+"个列表项");                text.setTextSize(18);                text.setTextColor(Color.GREEN);                layout.addView(image);                layout.addView(text);                return layout;            }        };        mListView4.setAdapter(baseAdapter);        //列表项的单击事件监听        mListView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                Toast.makeText(ListViewActivity.this, "第" + position+"列表项被单击", Toast.LENGTH_SHORT).show();            }        });        //列表项的选中事件监听        mListView1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {            }            @Override            public void onNothingSelected(AdapterView<?> parent) {            }        });        //列表项的长按事件监听        mListView1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {            @Override            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {                Toast.makeText(ListViewActivity.this, "第"+position+"列表项被长按",Toast.LENGTH_SHORT).show();                return false;            }        });        //列表项的选中事件监听        mListView2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {                Toast.makeText(ListViewActivity.this, "第"+position+"列表项被选中",Toast.LENGTH_SHORT).show();            }            @Override            public void onNothingSelected(AdapterView<?> parent) {            }        });    }}

//XML 布局文件

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_list_view"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="shortcut.song.com.myapplication.ListViewActivity">    <ListView        android:id="@+id/listview_list1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:entries="@array/listarray"        android:divider="#00ff00"        android:dividerHeight="3dp"        android:choiceMode="singleChoice"        >    </ListView>    <ListView        android:id="@+id/listview_list2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/listview_list1"        android:divider="#ff00ff"        android:dividerHeight="5dp"        >    </ListView>    <ListView        android:id="@+id/listview_list3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/listview_list2"        >    </ListView>    <ListView        android:id="@+id/listview_list4"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/listview_list3"/>    <LinearLayout        android:id="@+id/listlearlayout"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/listview_list3"        android:orientation="vertical"        >        <ImageView            android:id="@+id/listimage"            android:layout_width="35dp"            android:layout_height="35dp" />        <TextView            android:id="@+id/listname"            android:layout_width="wrap_content"            android:layout_height="wrap_content" />    </LinearLayout></RelativeLayout>

0 0
原创粉丝点击