`
wangangie12
  • 浏览: 45536 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
最近访客 更多访客>>
社区版块
存档分类
最新评论

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
分享到:
评论

相关推荐

    Android-awesome-android-ui.zip

    Android-awesome-android-ui.zip,一份精选的android ui/ux库列表,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    android-02-UI基本组件及事件处理.ppt

    android-02-UI基本组件及事件处理.ppt------安卓UI基本组件intent

    Android-android-ui-animation-components-and-libraries.zip

    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

    Android-react-native-ui-lib.zip,用于react native的ui组件库,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    Android代码-通用IM UI组件

    []() []() 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

    安卓UI布局相关-android-ui各种好看的组件.rar

    android-ui各种好看的组件.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

    Android-react-native-shop-ui.zip

    Android-react-native-shop-ui.zip,一个反作用的本地服装购物应用程序用户界面。,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    Android-react-native-material-ui.zip

    Android-react-native-material-ui.zip,高度可定制的React Native材料设计组件,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    Android-Tweet-uiTweetMediaView组件库

    Tweet-ui TweetMediaView组件库

    Android UI控件组件库集合【源码】

    Android UI控件组件库集合【源码】 热门标签,流式布局,刮刮乐控件,侧滑控件,循环幻灯片控件,自动换行控件,下拉列表,圆角进度控件等常用UI控件组件合集

    安卓UI布局相关-AndroidUI组件库各种好看的组件.rar

    Android UI组件库,各种好看的组件.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

    20.[开源][安卓][翻页效果的UI组件]android-flip-master

    20.[开源][安卓][翻页效果的UI组件]android-flip-master Aphid FlipView是一个能够实现Flipboard翻页效果的UI组件。

    android-ui-components:适用于Android项目的UI组件

    Trendyol Android团队的Android UI组件。 UI组件包含用于Android平台的多个自定义视图,以使开发人员的工作更轻松!为什么? Android应用程序,我们使用了几种自定义视图实现,这些实现可能对其他应用程序有用。组件...

    Android代码-可定制的UI组件的开源框架

    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 ...

    awesome-android-ui-master.zip

    精挑细选的优秀Android UI/UX库。这些库包含一系列预封装好的组件、工具和解决方案,旨在帮助Android开发者快速构建美观、交互友好且符合最佳实践的应用程序。

    react-native-ui-lib:React Native的UI组件库

    用于React Native的UI工具集和组件库 查看我们的。 我们的 下载我们的Expo演示应用 (您将需要Expo App) 正在安装 请参阅安装说明。 新的主要版本5.0 查看 对于React Native> = 0.60.0 请使用react-native-ui-...

    Android--UI-新手必备源码master.zip

    包括Android布局,弹窗,配色,单击事件,UI,精美炫酷的activity切换动画和空间动画,是新手必备的源码,内含相关的Dome 25件。 - - 文件夹 PATH 列表 卷序列号为 4E8D-6931 C:. │ .txt │ Android-UI-新手必备...

    Android-cardslider-android.zip

    -https://github.com/ramotion/android-ui-animation-components-and-libraries网站,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    Android-原生Android聊天和消息传递UI组件的库用于与Layer一起工作

    原生Android聊天和消息传递UI组件的库,用于与Layer一起工作

    Android UI组件实例集合

    9、Android的UI工具包 android-ui-utils 是一个工具包用来帮助设计和开发 Android 用户界面,包含三个单独的工具:Android Asset Studio用户界面原型模具,Android 设计预览,时常需要重复确认程序版面设计状况的 ...

Global site tag (gtag.js) - Google Analytics