Android开发04—Android常用高级控件(上)
1. 自动完成文本框
AutoCompleteTextView类继承自EditText类。自动完成文本框的外观与文本框没什么区别,只是当用户输入某些文字时,会自动出现下拉菜单显示与输入文字相关的信息。
自动完成文本框可以在XML文件中使用属性进行设置,也可以在Java代码中通过方法进行设置。
实例:
main.xml:
Activity:
2. 滚动视图
ScrollView类继承自FrameLayout类。ScrollView其实是一个帧布局,一般情况下,其中的控件是按照线性进行布局的,用户可以对其进行滚动。
ScrollView既可以在XML中配置也可在Java代码中进行配置。
ScrollView的使用方法比较简单,只需要将需要滚动的控件添加到ScrollView中即可。ScrollView同一时刻只能包含一个View。
具体方法:
3. 列表视图
ListView类是一种列表视图,将ListAdapter所提供的各个控件显示在一个垂直且可以滚动的列表中。
该类使用方法简单,只需要先初始化所需要得数据,然后创建适配器并将其设置给ListView,ListView便将信息以列表的形式显示到页面中。
使用案例:
string.xml
colors.xml
Activity:
GridView类同样位于android.widget包下。该视图将其空间以二维格式显示到表格中,而这些控件全部来自于ListAdapter适配器。
strings.xml
colors.xml
1. 自动完成文本框
AutoCompleteTextView类继承自EditText类。自动完成文本框的外观与文本框没什么区别,只是当用户输入某些文字时,会自动出现下拉菜单显示与输入文字相关的信息。
自动完成文本框可以在XML文件中使用属性进行设置,也可以在Java代码中通过方法进行设置。
实例:
main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/linearLayout1"> <AutoCompleteTextView android:text="AutoCompleteTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/autoCompleteTextView1"></AutoCompleteTextView> </LinearLayout>
Activity:
package qijia.si; import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.ImageView; public class MyAndroidProject extends Activity { private static final String[] myStr = new String[]{ "aaa","bbb","ccc","aab","aac","aad" }; //常量数组用于提示 /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayAdapter<String> aa = new ArrayAdapter<String>( this, android.R.layout.simple_dropdown_item_1line, myStr );//使用适配器 AutoCompleteTextView myAuto = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); myAuto.setAdapter(aa); myAuto.setThreshold(1); } }
2. 滚动视图
ScrollView类继承自FrameLayout类。ScrollView其实是一个帧布局,一般情况下,其中的控件是按照线性进行布局的,用户可以对其进行滚动。
ScrollView既可以在XML中配置也可在Java代码中进行配置。
ScrollView的使用方法比较简单,只需要将需要滚动的控件添加到ScrollView中即可。ScrollView同一时刻只能包含一个View。
具体方法:
package qijia.si; import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.ImageView; import android.widget.ScrollView; import android.widget.TextView; public class MyAndroidProject extends Activity { ScrollView scrollView; String msg = "我是字符串,我很长很长!我是字符串,我很长很长!"; String str = ""; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); scrollView = new ScrollView(this); TextView tv = new TextView(this); tv.setTextSize(23); for(int i = 0;i<10;i++){ str = str + msg; } tv.setText(str); scrollView.addView(tv); setContentView(scrollView); } }
3. 列表视图
ListView类是一种列表视图,将ListAdapter所提供的各个控件显示在一个垂直且可以滚动的列表中。
该类使用方法简单,只需要先初始化所需要得数据,然后创建适配器并将其设置给ListView,ListView便将信息以列表的形式显示到页面中。
使用案例:
string.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">AbsoluteExample</string> <string name="hello">您选择了</string> <string name="andy">Andy Rubin \nAndroid的创造者之一</string> <string name="Bill">Bill Joy \nJava创造者之一</string> <string name="edgar">Edgar F. Codd \n关系数据库之父</string> <string name="torvalds">Linus Torvalds \nLinux之父</string> <string name="turing">Turing Alan \nIT的祖师爷</string> <string name="ys">您选择了</string> </resources>
colors.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="white">#ffffff</color> <color name="red">#ff0000</color> <color name="black">#000000</color> <color name="green">#00ff00</color> <color name="gray">#050505</color> <color name="blue">#0000ff</color> </resources>main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_height="wrap_content" android:id="@+id/textView1" android:layout_width="fill_parent" android:textSize="24dip" android:textColor="@color/white" android:text="@string/hello"></TextView> <ListView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/listView1" android:choiceMode="singleChoice"></ListView> </LinearLayout>
Activity:
package qijia.si; import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.Gallery; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ScrollView; import android.widget.TextView; public class MyAndroidProject extends Activity { int[] drawableIds = {R.drawable.andy,R.drawable.bill,R.drawable.edgar,R.drawable.torvalds, R.drawable.turing}; int[] msgIds = {R.string.andy,R.string.Bill,R.string.edgar,R.string.torvalds,R.string.turing}; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView lv = (ListView) findViewById(R.id.listView1); BaseAdapter ba = new BaseAdapter(){ public int getCount() {return 5;} public Object getItem(int arg0){return null;} public long getItemId(int arg0){return 0;} public View getView(int arg0,View arg1, ViewGroup arg2){ //动态生成每一个下拉项对应的View,每个下拉项View由LinearLayout //中包含一个ImageView及一个TextView,由代码动态生成 LinearLayout ll = new LinearLayout(MyAndroidProject.this); ll.setOrientation(LinearLayout.HORIZONTAL); ll.setPadding(5, 5, 5, 5); ImageView ii = new ImageView(MyAndroidProject.this); ii.setImageDrawable(getResources().getDrawable(drawableIds[arg0])); ii.setScaleType(ImageView.ScaleType.FIT_XY); ii.setLayoutParams(new Gallery.LayoutParams(100,98)); ll.addView(ii); TextView tv = new TextView(MyAndroidProject.this); tv.setText(getResources().getText(msgIds[arg0])); tv.setTextSize(24); tv.setTextColor(MyAndroidProject.this.getResources().getColor(R.color.white)); tv.setPadding(5, 5, 5, 5); ll.addView(tv); return ll; } }; lv.setAdapter(ba); lv.setOnItemSelectedListener(new OnItemSelectedListener(){ public void onItemSelected(AdapterView<?> arg0,View arg1, int arg2,long arg3){ TextView tv = (TextView) findViewById(R.id.textView1); LinearLayout ll = (LinearLayout)arg1; TextView tvn = (TextView)ll.getChildAt(1); StringBuilder sb = new StringBuilder(); sb.append(getResources().getText(R.string.ys)); sb.append(":"); sb.append(tvn.getText()); String stemp = sb.toString(); tv.setText(stemp.split("\\n")[0]); } public void onNothingSelected(AdapterView<?> arg0){} }); lv.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView<?> arg0,View arg1,int arg2,long arg3){ TextView tv = (TextView) findViewById(R.id.textView1); LinearLayout ll =(LinearLayout) arg1; TextView tvn = (TextView)ll.getChildAt(1); StringBuilder sb = new StringBuilder(); sb.append(getResources().getText(R.string.ys)); sb.append(":"); sb.append(tvn.getText()); String stemp = sb.toString(); tv.setText(stemp.split("\\n")[0]); } }); } }4. 网络视图
GridView类同样位于android.widget包下。该视图将其空间以二维格式显示到表格中,而这些控件全部来自于ListAdapter适配器。
strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">当前无选中选项</string> <string name="app_name">Sample_5_3</string> <string name="andy">Andy Rubin</string> <string name="bill">Bill Joy</string> <string name="edgar">Edgar F. Codd</string> <string name="torvalds">Linus Torvalds</string> <string name="turing">Turing Alan</string> <string name="andydis">Android的创造者</string> <string name="billdis">Java创造者之一</string> <string name="edgardis">关系数据库之父</string> <string name="torvaldsdis">Linux之父</string> <string name="turingdis">IT的祖师爷</string> </resources>
colors.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="red">#fd8d8d</color> <color name="green">#9cfda3</color> <color name="blue">#8d9dfd</color> <color name="white">#FFFFFF</color> <color name="black">#000000</color> <color name="gray">#050505</color> </resources>main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/TextView01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:textColor="@color/white" android:textSize="24dip"/> <GridView android:id="@+id/GridView01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:verticalSpacing="5dip" android:horizontalSpacing="5dip" android:stretchMode="columnWidth"/> </LinearLayout>grid_row.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView android:id="@+id/ImageView01" android:scaleType="fitXY" android:layout_width="100dip" android:layout_height="98dip"/> <TextView android:id="@+id/TextView02" android:layout_width="100dip" android:layout_height="wrap_content" android:textColor="@color/white" android:textSize="24dip" android:paddingLeft="5dip"/> <TextView android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/white" android:textSize="24dip" android:paddingLeft="5dip"/> </LinearLayout>Activity:
package qijia.si; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.GridView; import android.widget.LinearLayout; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemSelectedListener; public class GridDemo extends Activity { //所有资源图片(andy、bill、edgar、torvalds、turing)id的数组 int[] drawableIds= {R.drawable.andy,R.drawable.bill,R.drawable.edgar,R.drawable.torvalds,R.drawable.turing}; //所有资源字符串(andy、bill、edgar、torvalds、turing)id的数组 int[] nameIds= {R.string.andy,R.string.bill,R.string.edgar,R.string.torvalds,R.string.turing}; int[] msgIds= {R.string.andydis,R.string.billdis,R.string.edgardis, R.string.torvaldsdis,R.string.turingdis}; public List<? extends Map<String, ?>> generateDataList(){ ArrayList<Map<String,Object>> list=new ArrayList<Map<String,Object>>();; int rowCounter=drawableIds.length;//得到表格的行数 for(int i=0;i<rowCounter;i++){//循环生成每行的包含对应各个列数据的Map;col1、col2、col3为列名 HashMap<String,Object> hmap=new HashMap<String,Object>(); hmap.put("col1", drawableIds[i]); //第一列为图片 hmap.put("col2", this.getResources().getString(nameIds[i]));//第二例为姓名 hmap.put("col3", this.getResources().getString(msgIds[i]));//第三列为描述 list.add(hmap); } return list; } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); GridView gv=(GridView)this.findViewById(R.id.GridView01); SimpleAdapter sca=new SimpleAdapter( this, generateDataList(), //数据List R.layout.grid_row, //行对应layout id new String[]{"col1","col2","col3"}, //列名列表 new int[]{R.id.ImageView01,R.id.TextView02,R.id.TextView03}//列对应控件id列表 ); gv.setAdapter(sca);//为GridView设置数据适配器 gv.setOnItemSelectedListener(//设置选项选中的监听器 new OnItemSelectedListener(){ public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {//重写选项被选中事件的处理方法 TextView tv=(TextView)findViewById(R.id.TextView01);//获取主界面TextView LinearLayout ll=(LinearLayout)arg1;//获取当前选中选项对应的LinearLayout TextView tvn=(TextView)ll.getChildAt(1);//获取其中的TextView TextView tvnL=(TextView)ll.getChildAt(2);//获取其中的TextView StringBuilder sb=new StringBuilder(); sb.append(tvn.getText());//获取姓名信息 sb.append(" "); sb.append(tvnL.getText());//获取描述信息 tv.setText(sb.toString());//信息设置进主界面TextView } public void onNothingSelected(AdapterView<?> arg0){} } ); gv.setOnItemClickListener( //设置选项被单击的监听器 new OnItemClickListener(){ public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {//重写选项被单击事件的处理方法 TextView tv=(TextView)findViewById(R.id.TextView01);//获取主界面TextView LinearLayout ll=(LinearLayout)arg1;//获取当前选中选项对应的LinearLayout TextView tvn=(TextView)ll.getChildAt(1);//获取其中的TextView TextView tvnL=(TextView)ll.getChildAt(2);//获取其中的TextView StringBuilder sb=new StringBuilder(); sb.append(tvn.getText());//获取姓名信息 sb.append(" "); sb.append(tvnL.getText());//获取描述信息 tv.setText(sb.toString());//信息设置进主界面TextView } } ); } }
发表评论
-
Android开发06—菜单与对话框(下)
2011-05-16 19:11 1108Android开发06—菜单与对 ... -
Android开发06—菜单与对话框(上)
2011-05-13 20:07 1182Android开发06—菜单与对话框(上) 1. 菜单 1) ... -
Android开发05—Android常用高级控件(下)
2011-05-09 19:16 1207Android开发05—Android常用高级控件(下) 1 ... -
Android的adapter总结和深入研究
2011-05-04 17:35 1814Android的adapter总结和深 ... -
Android开发03—Android常用基本控件(下)
2011-05-02 17:14 939Android开发03—Android常用 ... -
Android开发03—Android常用基本控件(上)
2011-04-30 16:30 1189Android开发03—Android常用基本控件(上) 1 ... -
Android系统开发02—Android布局管理器
2011-04-26 19:36 981Android系统开发02—Android布局管理器 1. ... -
Android系统开发01—Android基本组件
2011-04-26 19:33 929Android系统开发01—Android基本组件 1. 应 ...
相关推荐
4.2 常用控件应用 4.2.1 文本框(Textiew) 4.2.2 列表(ListView) 4.2.3 提示(T0ast) 4.2.4 编辑框(EditText) 4.2.5 单项选择(RadioGroup、RadioButton 4.2.6 多项选择(CheckBox) 4.2.7 下拉列表(Spinner) 4.2.8 自动...
【第一版第八章】老罗Android开发视频-常用UI控件(33集) 【第一版第九章】老罗Android开发视频--存储数据和文件(7集) 【第一版第十章】老罗Android开发视频--对话框介绍(4集) 【第一版第十一章】老罗...
第6章 UI高级控件 83 6.1 列表类控件 83 6.1.1 Adapter概念 83 6.1.2 AutoComplete 84 6.1.3 Spinner 87 6.1.4 ListView 90 6.1.5 GridView 96 6.1.6 Gallery 99 6.2 Toast 103 6.2.1 文本类型 103 6.2.2 ...
《Android核心技术与实例详解》涵盖的主要内容Aridroid开发起步,Android布局管理器,Android常用高级控件,游戏与3D应用程序开发,网络与数据处理,手机特有Feature开发,传感器应用的开发,Android游戏开发实践...
《Android核心技术与实例详解》涵盖的主要内容Aridroid开发起步,Android布局管理器,Android常用高级控件,游戏与3D应用程序开发,网络与数据处理,手机特有Feature开发,传感器应用的开发,Android游戏开发实践...
《Android核心技术与实例详解》涵盖的主要内容Aridroid开发起步,Android布局管理器,Android常用高级控件,游戏与3D应用程序开发,网络与数据处理,手机特有Feature开发,传感器应用的开发,Android游戏开发实践...
《Android核心技术与实例详解》涵盖的主要内容Aridroid开发起步,Android布局管理器,Android常用高级控件,游戏与3D应用程序开发,网络与数据处理,手机特有Feature开发,传感器应用的开发,Android游戏开发实践...
《Android核心技术与实例详解》涵盖的主要内容Aridroid开发起步,Android布局管理器,Android常用高级控件,游戏与3D应用程序开发,网络与数据处理,手机特有Feature开发,传感器应用的开发,Android游戏开发实践...
第5章 Android常用高级控件 第6章 菜单与对话框 高 级 篇 第7章 Android事件处理模型 第8章 游戏与3D应用程序开发 第9章 消息广播与服务 第10章 网络与数据处理 第11章 手机通信功能开发 第12章 手机特有Feature开发...
4.2 常用控件应用 4.2.1 文本框(Textiew) 4.2.2 列表(ListView) 4.2.3 提示(T0ast) 4.2.4 编辑框(EditText) 4.2.5 单项选择(RadioGroup、RadioButton 4.2.6 多项选择(CheckBox) 4.2.7 下拉列表...
最重要的是还全面介绍了如何利用原生的C,C++(NDK)和Python、Lua等脚本语言(AndroidScriptingEnvironment)来开发Android应用,《Android应用开发揭秘》实战性强,书中的每个知识点都有配精心设计的示例,尤为...
4.2 常用控件应用 4.2.1 文本框(Textiew) 4.2.2 列表(ListView) 4.2.3 提示(T0ast) 4.2.4 编辑框(EditText) 4.2.5 单项选择(RadioGroup、RadioButton 4.2.6 多项选择(CheckBox) 4.2.7 下拉列表...
第2章 Android开发工具新接触 13 2.1 Android开发IDE介绍 14 2.1.1 Android Studio初体验 14 2.1.2 Android Studio配置 15 2.2 Android Studio高级使用技巧 19 2.2.1 更新SDK 20 2.2.2 Android Studio常用界面 21 ...
2、Android常用控件的使用 3、Android多线程、网络编程等高级应用 4、Html5及Sqlite数据库前沿知识 无论您是在校大学生,还是职业学员,或者Java开发人员,本书都志在全面提高您的Android编程思想和开发实力,使...
全书分为3篇共18章,第1篇以简单易懂的实例为依托,详细介绍了Android平台的基本控件、高级控件、常用界面布局及菜单对话框等相关知识;第2篇介绍了Andr 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
本书深入浅出,详细讲解了Android开发的知识,主要内容包括:Android的体系架构、Android Studio、项目的创建、Android工程目录、调试程序、界面的搭建;常用的控件和属性、提示信息Toast和Snackbar、点击事件3种...
2、Android常用控件的使用 3、Android多线程、网络编程等高级应用 4、Html5及Sqlite数据库前沿知识 无论您是在校大学生,还是职业学员,或者Java开发人员,本书都志在全面提高您的Android编程思想和开发实力,使...