zoukankan      html  css  js  c++  java
  • 安卓开发_浅谈ListView(ArrayAdapter数组适配器)

    列表视图(ListView)以垂直的形式列出需要显示的列表项。

    实现过程:新建适配器->添加数据源到适配器->视图加载适配器

    在安卓中,有两种方法可以在屏幕中添加列表视图

    1、直接用ListView组件创建

    2、让Activity继承ListActivity实现

    一、xml文件方式创建列表

    布局文件代码

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <ListView
     8         android:id="@+id/listView1"
     9         android:entries="@array/list"          
    10        //在res/layout  的string.xml中添加数组资源的名称
    11         android:layout_width="match_parent"
    12         android:layout_height="wrap_content" >
    13     </ListView>
    14 
    15 </LinearLayout>
    16     

    相应的res/layout 中 数组资源

     1 <resources>
     2 
     3     <string name="app_name">xqx_lianxi</string>
     4     <string-array name = "list">   /数组资源名称为list 与layout中对应
     5         <item>山东大学</item>
     6         <item>山东科技大学</item>
     7         <item>山东理工大学</item>
     8         <item>山东建筑大学</item>
     9         <item>山东农业大学</item>
    10         <item>济南大学</item>
    11         <item>烟台大学</item>
    12         <item>鲁东大学</item>
    13         <item>临沂大学</item>
    14         <item>聊城大学</item>
    15     </string-array>
    16 </resources>

    java代码

     1 package xqx;
     2 
     3 import com.example.xqx_lianxi.R;
     4 
     5 import android.app.Activity;
     6 import android.os.Bundle;
     7 import android.view.View;
     8 import android.widget.AdapterView;
     9 import android.widget.Toast;
    10 import android.widget.AdapterView.OnItemClickListener;
    11 import android.widget.ListView;
    12 
    13 public class List_lianxi extends Activity{
    14     ListView list;   
    15     @Override
    16     protected void onCreate(Bundle savedInstanceState) {
    17         // TODO Auto-generated method stub
    18         super.onCreate(savedInstanceState);
    19         setContentView(R.layout.list_lianxi);
    20         
    21         list = (ListView) findViewById(R.id.listView1);
    22         
    23         //为列表视图中选中的项添加响应事件
    24         list.setOnItemClickListener(new OnItemClickListener() {
    25 
    26             @Override
    27             public void onItemClick(AdapterView<?> parent, View arg1, int pos,
    28                     long id) {
    29                 // TODO Auto-generated method stub
    30                 String result = parent.getItemAtPosition(pos).toString(); //获取选择项的值
    31                 Toast.makeText(List_lianxi.this, "点击了 "+result, Toast.LENGTH_SHORT).show();//输出选中项消息
    32             }
    33         });
    34     }
    35     
    36 }

    效果图:

    二、java代码动态创建列表

    1、布局文件

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <ListView
     8         android:id="@+id/id_listview"
     9         android:layout_width="match_parent"
    10         android:layout_height="wrap_content" >  //这里就不用指定数据源了
    11     </ListView>
    12 
    13 </LinearLayout>

    2、Acitivity代码

     1 package price_ui;
     2 
     3 import com.example.allcode.R;
     4 
     5 import android.app.Activity;
     6 import android.os.Bundle;
     7 import android.view.View;
     8 import android.widget.AdapterView;
     9 import android.widget.AdapterView.OnItemClickListener;
    10 import android.widget.ArrayAdapter;
    11 import android.widget.ListView;
    12 import android.widget.SimpleAdapter;
    13 import android.widget.Toast;
    14 
    15 public class ListView_test extends Activity{
    16     private ListView list;
    17     private ArrayAdapter<String> arrayadapter;
    18     private SimpleAdapter simpleadapter;
    19     
    20     @Override
    21     protected void onCreate(Bundle savedInstanceState) {
    22         // TODO Auto-generated method stub
    23         super.onCreate(savedInstanceState);
    24         setContentView(R.layout.listview_text);
    25         
    26         list = (ListView) findViewById(R.id.id_listview);
    27         String schools[] = {"山东大学","山东理工大学","山东科技大学","山东农业大学"};
    28         //新建适配器,适配器加载数据源
    29         //第一个参数:上下文
    30         //第二个参数:当前列表项加载的布局文件
    31         //第三个参数:数据源
    32          
    33         arrayadapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, schools);
    34         
    35         //ListView视图加载适配器
    36         list.setAdapter(arrayadapter);
    37         
    38         //为列表视图中选中的项添加响应事件
    39         list.setOnItemClickListener(new OnItemClickListener() {
    40 
    41           
    42 
    43             @Override
    44             public void onItemClick(AdapterView<?> parent, View arg1, int pos,
    45                     long id) {
    46                 // TODO Auto-generated method stub
    47                 String result = parent.getItemAtPosition(pos).toString(); //获取选择项的值
    48                 Toast.makeText(ListView_test.this, "点击了 "+result, Toast.LENGTH_SHORT).show();//输出选中项消息
    49             }
    50         });
    51     }
    52 
    53 }

    作者:听着music睡

    出处:http://www.cnblogs.com/xqxacm/

    Android交流群:38197636

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    多态
    封装,继承,多态
    基本类型和引用类型的区别
    第七天 面向对象
    什么是Java线程池
    游戏内核架构
    放松
    静不下来心写代码
    速度和正确率
    理顺思路
  • 原文地址:https://www.cnblogs.com/xqxacm/p/4149410.html
Copyright © 2011-2022 走看看