安卓开发_浅谈ListView(ArrayAdapter数组适配器)

简介: 列表视图(ListView)以垂直的形式列出需要显示的列表项。   实现过程:新建适配器->添加数据源到适配器->视图加载适配器   在安卓中,有两种方法可以在屏幕中添加列表视图 1、直接用ListView组件创建 2、让Activity继承ListActivity实现   一、xm...

列表视图(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 }

 

相关文章
|
6天前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
33 19
|
6天前
|
JSON Java API
探索安卓开发:打造你的首个天气应用
在这篇技术指南中,我们将一起潜入安卓开发的海洋,学习如何从零开始构建一个简单的天气应用。通过这个实践项目,你将掌握安卓开发的核心概念、界面设计、网络编程以及数据解析等技能。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供一个清晰的路线图和实用的代码示例,帮助你在安卓开发的道路上迈出坚实的一步。让我们一起开始这段旅程,打造属于你自己的第一个安卓应用吧!
30 14
|
7天前
|
XML 存储 Java
探索安卓开发之旅:从新手到专家
在数字时代,掌握安卓应用开发技能是进入IT行业的关键。本文将引导读者从零基础开始,逐步深入安卓开发的世界,通过实际案例和代码示例,展示如何构建自己的第一个安卓应用。我们将探讨基本概念、开发工具设置、用户界面设计、数据处理以及发布应用的全过程。无论你是编程新手还是有一定基础的开发者,这篇文章都将为你提供宝贵的知识和技能,帮助你在安卓开发的道路上迈出坚实的步伐。
17 5
|
6天前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
|
7天前
|
XML 搜索推荐 前端开发
安卓开发中的自定义视图:打造个性化UI组件
在安卓应用开发中,自定义视图是一种强大的工具,它允许开发者创造独一无二的用户界面元素,从而提升应用的外观和用户体验。本文将通过一个简单的自定义视图示例,引导你了解如何在安卓项目中实现自定义组件,并探讨其背后的技术原理。我们将从基础的View类讲起,逐步深入到绘图、事件处理以及性能优化等方面。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
7天前
|
搜索推荐 前端开发 测试技术
打造个性化安卓应用:从设计到开发的全面指南
在这个数字时代,拥有一个定制的移动应用不仅是一种趋势,更是个人或企业品牌的重要延伸。本文将引导你通过一系列简单易懂的步骤,从构思你的应用理念开始,直至实现一个功能齐全的安卓应用。无论你是编程新手还是希望拓展技能的开发者,这篇文章都将为你提供必要的工具和知识,帮助你将创意转化为现实。
|
7天前
|
Java Android开发 开发者
探索安卓开发:构建你的第一个“Hello World”应用
在安卓开发的浩瀚海洋中,每个新手都渴望扬帆起航。本文将作为你的指南针,引领你通过创建一个简单的“Hello World”应用,迈出安卓开发的第一步。我们将一起搭建开发环境、了解基本概念,并编写第一行代码。就像印度圣雄甘地所说:“你必须成为你希望在世界上看到的改变。”让我们一起开始这段旅程,成为我们想要见到的开发者吧!
14 0
|
7月前
|
XML Java Android开发
如何美化android程序:自定义ListView背景
如何美化android程序:自定义ListView背景
67 2
|
Android开发
Android自定义ListView和GridView解决滑动冲突和显示不全
Android自定义ListView和GridView解决滑动冲突和显示不全
172 0
|
Android开发
Android项目实战(十五):自定义不可滑动的ListView和GridView
原文:Android项目实战(十五):自定义不可滑动的ListView和GridView 不可滑动的ListView (RecyclweView类似) public class NoScrollListView extends ListView { public NoScrollLi...
969 0