一、TextView
文本框组件,直接继承View,也是EditText和Button的父类
android:hint setHint(int) 默认显示的提示文本
android:inputType setRawInputType(int) 类似于HTML中input的type属性
android:linksClickable setLinksClickable(boolean) 控制文本框的URL、Email等链接是否可点击
android:maxLines setMaxLines(int) 设置该文本框最多占几行
android:password 该文本框是一个密码框
android:phoneNumber 该文本框只接受电话号码
android:singleLine 设置该文本框是否为单行模式


二、EditText
android:inpuType="numberPassword" 只接受数字密码
android:inputType="number" 数值输入框
android:inputType="date" 日期输入框
android:inputType="phone" 电话号码输入框
android:selectAllOnFocus="true" 如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置


三、单选框复选框(CheckBox、RadioButton),ToogleButton,Switch
1.CheckBox、RadioButton都有一个android:checked属性,用于指定初始状态是否被选中。如果在布局文件中默认勾选了某个单选按钮,必须为该单选按钮的每个按钮设置android:id属性
eg:
rg = (RadioGroup) findViewById(R.id.rg);rg.setOnCheckedChangeListener(new OnCheckedChangeListener(){@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId){String tip = checkedId == R.id.male ?"您的性别是男人": "您的性别是女人";// 修改show组件中的文本。show.setText(tip);}});

2.ToogleButton,Switch通常用于状态切换

四、ImageView组件
android:scaleType设置所显示的图片如何缩放或移动以适应ImageView的大小;当scaleType的值为center时,则会把图片放在ImageView的中间,但不进行任何缩放。
android:src setImageResource(int) 设置ImageView所显示的Drawable对象的ID

android:src="@drawable/shui"
eg.注意获取ImageView的位图以及创建位图的方法
final ImageView image1 = (ImageView) findViewById(R.id.image1);final ImageView image2 = (ImageView) findViewById(R.id.image2);// more code ……BitmapDrawable bitmapDrawable = (BitmapDrawable) image1.getDrawable();// 获取第一个图片显示框中的位图Bitmap bitmap = bitmapDrawable.getBitmap();image2.setImageBitmap(Bitmap.createBitmap(bitmap, x, y, 120, 120));


五、AdapterView
继承于ViewGroup,本质是容器。包含多个列表项,并将多个列表项以合适的形式显示出来;他显示的多个列表项由Adapter提供。调用AdapterView的setAdapter(Adapter)可设置Adapter。
1.ListView
创建方式有俩:第一,直接使用ListView进行创建;第二,让Activity继承ListActivity
eg.
<ListView android:id="@+id/android:list"   android:layout_width="match_parent"   android:layout_height="match_parent"   android:entries="@array/books"/>

相应entries定义在/res/values/arrays.xml下

2.ArrayAdapter创建ListView
创建ArrayAdapter必须指定三个参数:
1)Context:代表访问整个android应用的接口。几乎创建所有的组件都需要传入Context对象;
2)textViewResourceId:一个资源ID,代表一个TextView,该TextView组件将作为ArrayAdapter的列表项组件
3)数组或list:该数组或list负责为多个列表项组件提供数据。
eg.
ListView list = (ListView) findViewById(R.id.list1);// 定义一个数组String[] arr = { "xxx", "xxx", "xxx" };// 将数组包装ArrayAdapterArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, R.layout.array_item, arr);// 为ListView设置Adapterlist.setAdapter(adapter);

3.SimpleAdapter创建ListView
ArrayAdapter功能有限,它的每个列表项必须是TextView;为了开发更为复杂的列表项,可以考虑使用SimpleAdapter。
private String[] names = new String[]{ "xx", "xx", "xx", "xx"};private String[] descs = new String[]{ "xxx", "xxx", "xxx", "xxx"};private int[] imageIds = new int[]{ R.drawable.xx, R.drawable.xx, R.drawable.xx, R.drawable.xx};@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);// 创建一个List集合,List集合的元素是MapList<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();for (int i = 0; i < names.length; i++){Map<String, Object> listItem = new HashMap<String, Object>();listItem.put("header", imageIds[i]);listItem.put("personName", names[i]);listItem.put("desc", descs[i]);listItems.add(listItem);}// 创建一个SimpleAdapterSimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems,R.layout.simple_item, new String[] { "personName", "header" , "desc"},new int[] { R.id.name, R.id.header , R.id.desc });ListView list = (ListView) findViewById(R.id.mylist);// 为ListView设置Adapterlist.setAdapter(simpleAdapter);}

关于SimpleAdapter的5个参数:
第一个参数为Context;
第二个参数是一个List<Map<?,?>>的集合对象,该集合中每个Map<?,?>对象生成一个列表项——可联想手机版QQ的联系人列表项(包含头像、昵称、个性签名);
第三个参数指定页面布局的ID,作为列表项组件
第四个参数是一个String[]类型的参数,该参数决定提取Map<String,?>对象中哪些key对应的value来生成列表项;
第五个参数是一个int[]型的参数,该参数决定填充哪些组件。即指定页面布局文件中填充的目标组件。
另外,可以为每一个列表项指定单击事件的监听器.
list.setonItemClickListener(new onItemClickListener(){...});

4.BaseAdapter
扩展BaseAdapter可取得Adapter的最大控制权:程序要创建多少列表项,每个列表项的组件都由开发者自己决定。
myList = (ListView) findViewById(R.id.myList);BaseAdapter adapter = new BaseAdapter(){@Overridepublic int getCount(){// 指定一共包含40个选项return 40;}@Overridepublic Object getItem(int position){return null;}// 重写该方法,该方法的返回值将作为列表项的ID@Overridepublic long getItemId(int position){return position;}// 重写该方法,该方法返回的View将作为列表框@Overridepublic View getView(int position, View convertView , ViewGroup parent){// 创建一个LinearLayout,并向其中添加2个组件LinearLayout line = new LinearLayout(BaseAdapterTest.this);line.setOrientation(0);ImageView image = new ImageView(BaseAdapterTest.this);image.setImageResource(R.drawable.ic_launcher);TextView text = new TextView(BaseAdapterTest.this);text.setText("第" + (position +1 ) + "个列表项");text.setTextSize(20);text.setTextColor(Color.RED);line.addView(image);line.addView(text);// 返回LinearLayout实例return line;}};myList.setAdapter(adapter);}

扩展BaseAdapter对象需要重写如下几个方法:
getCount():控制该Adapter将会包含多少个列表项?
getItem(int position):决定第position处列表项的内容
getItemId(int position):决定第position处列表项的id
getView(int position, View convertView, ViewGroupParent):决定第position处的列表项组件。

更多相关文章

  1. Android四大组件完全解析(一)---Activity
  2. Android虚拟键盘挡住输入组件的解决办法
  3. android 列表框
  4. Android ExpandableListView同时显示多种不同类型字列表
  5. 专家专栏:Android层次化安全架构及核心组件概览
  6. Android安全机制--四大组件安全
  7. Android官方架构组件DataBinding双向绑定篇: 观察者模式的殊途同

随机推荐

  1. Android如何集成Vitamio
  2. Android(安卓)澶氫釜APK鍏变韩鏁版嵁(Sha
  3. 手把手教你在CTS中编写自己的测试模块
  4. 详解Android单元测试最佳实践
  5. 【Android解决方案】GridView第一次选中
  6. 第四课:android数据相关---sharedPreferen
  7. android手把手教你开发launcher(五)——设
  8. 教你修改eclipse创建android project时默
  9. 谷歌向全球正式发布 Android(安卓)9,代号
  10. android ListView拖动时会黑屏的解决方法