zoukankan      html  css  js  c++  java
  • android 开发-ListView列表显示控件的实现

     列表的显示需要三个元素:

    1.ListVeiw 用来展示列表的View。

    2.适配器 用来把数据映射到ListView上的中介。

    3.数据    具体的将被映射的字符串,图片,或者基本组件。

    根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter

      UI:

     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:paddingBottom="@dimen/activity_vertical_margin"
     6     android:paddingLeft="@dimen/activity_horizontal_margin"
     7     android:paddingRight="@dimen/activity_horizontal_margin"
     8     android:paddingTop="@dimen/activity_vertical_margin"
     9     tools:context=".MainActivity" >
    10 
    11     <ListView
    12         android:id="@+id/listView1"
    13         android:layout_width="match_parent"
    14         android:layout_height="wrap_content"
    15         android:layout_alignParentLeft="true"
    16         android:layout_marginLeft="26dp" >
    17 
    18     </ListView>
    19 
    20 </RelativeLayout>
    ListView

      Activity:

      

     1 package com.example.android_listview;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 import android.app.Activity;
     7 import android.os.Bundle;
     8 import android.view.Menu;
     9 import android.view.View;
    10 import android.widget.AdapterView;
    11 import android.widget.AdapterView.OnItemClickListener;
    12 import android.widget.ArrayAdapter;
    13 import android.widget.ListView;
    14 import android.widget.Toast;
    15 /**
    16  * @author xiaowu
    17  * NOTE:ListView的使用
    18  */
    19 public class MainActivity extends Activity {
    20     private ListView listView ;
    21     private ArrayAdapter<String> arrayAdapter ;
    22     @Override
    23     protected void onCreate(Bundle savedInstanceState) {
    24         super.onCreate(savedInstanceState);
    25         setContentView(R.layout.activity_main);
    26         listView = (ListView) findViewById(R.id.listView1);
    27         /*
    28          * 设置listView的选中模式
    29          *     多选:CHOICE_MODE_MULTIPLE
    30          *     无   :CHOICE_MODE_NONE
    31          *     单选:CHOICE_MODE_SINGLE
    32          * 设置选中模式的时候需要注意修改ArrayAdapter数组适配器的显示样式
    33          */
    34         listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    35         arrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_single_choice, getData());
    36         //为listView注册适配器,如果适配器需要跟新数据的情况下,需要使用notifyDataSetChanged()方法更新UI展示信息,(一旦适配器有数据,直接通知UI更新)
    37         listView.setAdapter(arrayAdapter);
    38         //注册点击选事件
    39         listView.setOnItemClickListener(new OnItemClickListener() {
    40             @Override
    41             public void onItemClick(AdapterView<?> parent, View view,
    42                     int position, long id) {
    43                 // TODO Auto-generated method stub
    44                 Toast.makeText(MainActivity.this, "选择"+arrayAdapter.getItem(position), 0).show();
    45             }
    46         });
    47     }
    48     public List<String> getData(){
    49         List<String> list = new ArrayList<String>();
    50         for(int i = 0 ; i<30 ; i++){
    51             list.add("hw"+i);
    52         }
    53         return list ;
    54     }
    55     @Override
    56     public boolean onCreateOptionsMenu(Menu menu) {
    57         // Inflate the menu; this adds items to the action bar if it is present.
    58         getMenuInflater().inflate(R.menu.main, menu);
    59         return true;
    60     }
    61 
    62 }
  • 相关阅读:
    jdbc(插入大对象及读取大对象、存储过程)
    jdbc批量插入操作(addBatch)
    javase(Properties集合及学生对象信息录入文本中案例)
    javase模拟斗地主洗牌和发牌(54)
    javase套接字编程
    javase网络编程
    javase多线程复制
    javase文件切割及融合
    设计原则
    模板方法模式
  • 原文地址:https://www.cnblogs.com/HEWU10/p/4350562.html
Copyright © 2011-2022 走看看