列表的显示需要三个元素:
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 }
时间: 2024-10-11 13:00:08