android--UI组件总结
- 博客分类:
- 技术杂绘
android的组件基本都按如下方法生成:
1、生成一个组件对象:通过xml文件或在代码中生成
2、对组件进行设置
3、添加事件监听器
View:
View中的setTag(Onbect)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来。
可以用在多个Button添加一个监听器,每个Button都设置不同的setTag。这个监听器就通过getTag来分辨是哪个Button 被按下。 package fy.test; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button1 = (Button) findViewById(R.id.Button01); Button button2 = (Button) findViewById(R.id.Button02); Button button3 = (Button) findViewById(R.id.Button03); Button button4 = (Button) findViewById(R.id.Button04); MyListener listener = new MyListener(); button1.setTag(1); button1.setOnClickListener(listener); button2.setTag(2); button2.setOnClickListener(listener); button3.setTag(3); button3.setOnClickListener(listener); button4.setTag(4); button4.setOnClickListener(listener); } public class MyListener implements View.OnClickListener { @Override public void onClick(View v) { int tag = (Integer) v.getTag(); switch (tag) { case 1: System.out.println("button1 click"); break; case 2: System.out.println("button2 click"); break; case 3: System.out.println("button3 click"); break; case 4: System.out.println("button4 click"); break; } } } } main.xml 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fenghome/archive/2010/06/20/5 681338.aspx ListView: 1、生成ListView对象:可以在Layout中声明,也可以在代码中声明
2、设置ListView对象的各个属性。主要是Adatper
3、设置监听器
Adapter:
Adapter,可以理解为一种pb中的结果集(数据源+界面):
ArrayAdapter数据源:一维数组,界面:系统提供或自定义
数据源:数组 :String[] names = {"张三","李四"};
界面:
系统提供多种:
android.R.Layout.simple_list_item_1
android.R.Layout.simple_list_item_2
android.R.Layout.simple_list_item_checked
android.R.Layout.simple_list_item_multiple_choice
android.R.Layout.simple_list_item_single_choice
自定义: 是一个layout
绑定:ArrayAdapther adapter = new ArrayAdapter(this,界面布局,数据源);
SimpleAdapter 数据源:多维数据 界面:系统提供多种或自定义
数据源:Map负责一行的每列,ArrayList负责所有行
界面:一个Layout或程序指定。
SimpleCursorAdapter 数据源:Cursor 界面:系统提供多种或自定义
BaseAdapter:自定义数据源与界面的关联方式,自定义行界面各组件的时间响应。
框架流程:
1、Activity显示主布局,发现包含ListView就绘制ListView
2、ListView绘制时会查找自己身上的Adapter,调用Adapter的getSize()取得行号,并逐行调用getView()取得"行view"并将其画出来。
3、Adapter负责将数据源与行界面相关联。
数据源:自定义
界面:自定义
先生成行界面
生成需要显示的数据
生成一个BaseAdapter的子类,
实现getCount() 方法:返回数据源的行数
实现getView()方法:设置数据与行View关联,设置组件事件响应。 package fy.test; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; public class HellowListView extends Activity { private ArrayList> arrayList = new ArrayList>(); private Map map; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initDate(); MyAdapter adapter = new MyAdapter(this); ListView list = (ListView) findViewById(R.id.ListView01); list.setAdapter(adapter); } private void initDate() { map = new HashMap(); map.put("姓名", "张三"); map.put("电话", "1132434343333"); arrayList.add(map); map.put("姓名", "张三"); map.put("电话", "1132434343333"); arrayList.add(map); map.put("姓名", "张三"); map.put("电话", "1132434343333"); arrayList.add(map); } public class MyAdapter extends BaseAdapter { private LayoutInflater inflater; public MyAdapter(Context c) { this.inflater = LayoutInflater.from(c); } @Override public int getCount() { return arrayList.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } /** * 设置数据源与行View关联 * 设置行中个组件的事件响应 * 返回设置好的View */ @Override public View getView(int arg0, View arg1, ViewGroup arg2) { //取得要显示的行View View myView = inflater.inflate(R.layout.list_item, null); TextView name = (TextView) myView.findViewById(R.id.TextView01); TextView phoneNum = (TextView) myView.findViewById(R.id.TextView02); Button button = (Button) myView.findViewById(R.id.Button01); //让行View的每个组件与数据源相关联 name.setText((String) arrayList.get(arg0).get("姓名")); phoneNum.setText((String) arrayList.get(arg0).get("电话")); final String note = "按下的是" + arg0; button.setFocusable(false); //添加事件响应 button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub System.out.println(note); } }); return myView; } } } main.xml sime_list.x ml 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fenghome/archive/2010/06/19/5 680457.aspx
发表评论
-
windows编程中字符和字符串的处理
2012-07-06 09:52 599字符格式基础 首先说说字符编码的两种格式。 一种是 ... -
JavaScript中的正则表达式:
2012-07-06 09:45 566JavaScript中的正则表达式 : 格式:/pa ... -
java的正则表达式 (基于官方帮助文档做部分说明)
2012-07-06 09:37 553[/b][b]下面这段代码用了log4j,去下个log4j ... -
jQuery 中的filter 运用
2012-07-06 09:30 728无标题页 skin/MaiNaEr/ ... -
iframe 自动高、宽度设置 总结
2012-07-05 20:45 1330function iFrameHeight() ... -
FLEX程序如何改变程序中单个动画的帧速
2012-07-02 10:48 479在Flex程序中,必须有一个主程序组件,相当于C语言中的m ... -
Flex中如何利用FocusManager类的setFocus函数设置TextInput的焦点的例子
2012-07-02 10:48 641接下来的例子演示了Flex中如何利用FocusManage ... -
Flex 监听键盘事件
2012-07-02 10:48 580一、说明 1、只有当监听的对象获取焦点后,才能出接收 ... -
Cross-domain policy和/WEB-INF/flex/proxy-config.xml
2012-07-02 10:47 692从flash 7开始,不同域名的资源访问受到限制,比如a. ... -
B2B2C网上商城开发指南――基于SaaS和淘宝API开放平台
2012-07-01 00:26 440B2B2C网上商城开发指南--基于SaaS和淘宝AP ... -
拥抱RIA拥抱未来
2012-07-01 00:26 552学习和使用RIA已有一段时间了,结合实际工作、谈谈自己的见 ... -
基于WebService+Flex的B/S系统架构
2012-07-01 00:26 601系统采用标准的三层架构 展现层/业务逻辑/数据层 展 ... -
屏蔽Flex右键的一些解决方案
2012-07-01 00:26 592一直以来对Flex或者说Flash的右键就存在一些不好的印 ... -
学习Flex,都学些什么
2012-07-01 00:26 558学习Flex,都学些什么呢? 1、首先是事件机制,整 ...
相关推荐
Android-awesome-android-ui.zip,一份精选的android ui/ux库列表,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
android-02-UI基本组件及事件处理.ppt------安卓UI基本组件intent
Android-android-ui-animation-components-and-libraries.zip,android ui库、组件和动画作者@ramotion-https://github.com/ramotion/swift-ui-animation-components-libraries,安卓系统是谷歌在2008年设计和制造的。...
Android-react-native-ui-lib.zip,用于react native的ui组件库,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
[]() []() Aurora IMUI 中文文档 Aurora IMUI is a general IM UI ...We already have Android/iOS platforms support. We also plan to support React Native. Features With Aurora IMUI, you can implement
android-ui各种好看的组件.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android-react-native-shop-ui.zip,一个反作用的本地服装购物应用程序用户界面。,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
Android-react-native-material-ui.zip,高度可定制的React Native材料设计组件,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
Tweet-ui TweetMediaView组件库
Android UI控件组件库集合【源码】 热门标签,流式布局,刮刮乐控件,侧滑控件,循环幻灯片控件,自动换行控件,下拉列表,圆角进度控件等常用UI控件组件合集
Android UI组件库,各种好看的组件.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
20.[开源][安卓][翻页效果的UI组件]android-flip-master Aphid FlipView是一个能够实现Flipboard翻页效果的UI组件。
Trendyol Android团队的Android UI组件。 UI组件包含用于Android平台的多个自定义视图,以使开发人员的工作更轻松!为什么? Android应用程序,我们使用了几种自定义视图实现,这些实现可能对其他应用程序有用。组件...
Atlas is an open source framework of customizable UI components for use with the Layer SDK designed to get messaging tested and integrated quickly. This repository contains the Atlas library. For a ...
精挑细选的优秀Android UI/UX库。这些库包含一系列预封装好的组件、工具和解决方案,旨在帮助Android开发者快速构建美观、交互友好且符合最佳实践的应用程序。
用于React Native的UI工具集和组件库 查看我们的。 我们的 下载我们的Expo演示应用 (您将需要Expo App) 正在安装 请参阅安装说明。 新的主要版本5.0 查看 对于React Native> = 0.60.0 请使用react-native-ui-...
包括Android布局,弹窗,配色,单击事件,UI,精美炫酷的activity切换动画和空间动画,是新手必备的源码,内含相关的Dome 25件。 - - 文件夹 PATH 列表 卷序列号为 4E8D-6931 C:. │ .txt │ Android-UI-新手必备...
-https://github.com/ramotion/android-ui-animation-components-and-libraries网站,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
原生Android聊天和消息传递UI组件的库,用于与Layer一起工作
9、Android的UI工具包 android-ui-utils 是一个工具包用来帮助设计和开发 Android 用户界面,包含三个单独的工具:Android Asset Studio用户界面原型模具,Android 设计预览,时常需要重复确认程序版面设计状况的 ...