




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
wedgit的用法一、checkBox(多项选择):1. 获取组件跟其他几个基本组件一样(button,textview等),同样是用findViewById()从R里面获取该组件。2. 常用方法主要有二个方法:getText()和isChecked(),前者是获取文本,后者是判断是否被选定。3. XML标签: 二、RadioGroup(单项选择)1. 获取组件的方法同上,findViewById()从R里面获取组件。2. 常用方法主要有clearCheck(),清除选项用。3. XML标签同CheckBox不一样,是包含的。: 三、Spinner(下拉列表)1. 获取组件的方法同上findViewById()从R里面获取组件。2. 常用方法setAdapter()设置适配器,用来绑定数据。spinner_c = (Spinner) findViewById(R.id.spinner_1);获取组件allcountries = new ArrayList();for (int i = 0; i mCountries.length; i+) allcountries.add(mCountriesi);这里allcountries是一个List,mCountries是一个String类型的数组,个人觉得做为一个Demo,没有必要搞得这么复杂。直接给出一个List就可以啦。aspnCountries = new ArrayAdapter(this,android.R.layout.simple_spinner_item, allcountries);实例化一个Spinner,其参数目前还不太清楚,以后补充。要注意的是最后一个参数对应了这个Spinner的类型也是ArrayAdapter。aspnCountries.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);搞了半天,貌似设置下拉列表的显示方式。spinner_c.setAdapter(aspnCountries);这句是关键的,反观上去,都是为了这句做准备的,先由List构建一个ArrayAdapter,再通过这句话绑定适配器。3. XML标签:四、AutoCompleteTextView(自动完成文本)1获取组件方法同上。2.常用方法setAdapter(),这里的自动完成是需要绑定后台的数据的。ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, COUNTRIES);实例化一个Adapter,构造函数跟Spinner里的Adapter一样,以后补充。AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.auto_complete);textView.setAdapter(adapter);这个方法同上,也是非常关键的。3. XML标签同一般的标签(textView,button)五、DatePicker(日期选择器)1.获取组件方法同上。2.常用方法init(),初始化日期,即最开始要显示的日期。DatePicker dp = (DatePicker)this.findViewById(R.id.date_picker);dp.init(2009, 5, 17, null);这个方法是可以理解的,只是最后一个参数表示什么还不知道,以后补充。4. XML标签同其他一般标签(button,textView)。六、TimePicker(时间选择器)1.获取组件方法同上。2.常用方法setIs24HourView():是否显示24小时时间制。True为显示二十四小时时间制。3.XML标签同其他一般标签(button,textView)。七、ScrollView(滚动视图)1、这个组件比较直观,直接在XML文件的LinearLayout外面再增加ScrollView组件申明即可。八、ProgressBar(进度条)1、这个组件也比较直观,直接在XML文件里申明即可。这里是两种类型的进度条,第一种同Button,textView一样设置即可,显示为圆形进度条,第二种通过style来设置成水平进度条,通过width,height,max,progress,secondaryProgress来描述进度条的样子。 九、SeekBar(拖动条)1、这个组件有点类似进度条,直接在XML文件里申明即可。Max,progress描述拖动条的样子,thumb表示拖动点的图形。十、RatingBar(评分组件)1、又是一个直观的组件。这里只有最后一个属性不知道做什么用的,以后补充十一、ImageView(图片视图)1、 又是一个直观的组件。该标签与button,textView等一般标签不同的地方是多了一个src,它表示图片的出处。十二、ImageButton(图片按钮)1、 直观组件。同ImageView一样,这个组件是Button组件和ImageView的组合。十三、ImageSwitcher&Gallery(切换图片)1、 这两个组件的获取方法都是通过findViewById()2、 常用方法,这个组件的方法比较多仅难懂:public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);这个方法是使这个Activity没有TitleBar。进而使图片显示区域变大。 setContentView(R.layout.image_show); setTitle(ImageShowActivity); mSwitcher = (ImageSwitcher) findViewById(R.id.switcher); mSwitcher.setFactory(this);在使用ImageSwitcher之前,一定要调用setFactory,否则会报空指针的错误。 mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in); mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out);Animation字典意思是兴奋,生气。在这里用来实现ImageSwitcher的切换效果。setInimation是资源被读入到这个ImageSwitcher中时实现的动画效果,setOutAnimation是资源从这个ImageSwitcher消失的动画效果。 Gallery g = (Gallery) findViewById(R.id.gallery); g.setAdapter(new ImageAdapter(this); g.setOnItemSelectedListener(this);Gallery这个类似ListView这个类使用就去差不多,也是要利用SetAdapter来进行资源设置。这里在参考资料中,创建了一个继承自BaseAdapter的内部类,并对这个类进行了封装,做为setAdapter的参数。至于最后一行的方法,以后补充。3、 这个组件使用程中的两个难理解的方法getView()和makeView():public View getView(int position, View convertView, ViewGroup parent) ImageView i = new ImageView(mContext); i.setImageResource(mThumbIdsposition); i.setAdjustViewBounds(true); i.setLayoutParams(new Gallery.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); i.setBackgroundResource(R.drawable.picture_frame); return i; 这个方法是内部类里面的方法,用来绑定Gallery。setImageResource,setLayoutParams,setBackgroudResource分别设定图片来源,大小,背景public View makeView() ImageView i = new ImageView(this); i.setBackgroundColor(0xFF000000); i.setScaleType(ImageView.ScaleType.FIT_CENTER); i.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); return i;这个方法是Activity里面的方法,用来显示大图。即ImageSwitcher的图片。setScaleType还不知道是做什么的,以后补充,个人认为,getView会返回一个View,而在makeView里面实例化ImageView的时候就是返回的那个View,然后对这个View重新设置了表现形式。十四、GridView(网格视图)1、 获取组件:findViewById()2、 常用方法:setAdapter(),在这个例子里面也是用的内部类来绑定数据的,同ImageSwitcher&Gallery。在这里主要看看这个内部类的构成:public class ImageAdapter extends BaseAdapter 注意继承的父类,它要求实现下面的几个方法。 private Context mContext; public ImageAdapter(Context c) mContext = c; public int getCount() return mThumbIds.length; public Object getItem(int position) return null; public long getItemId(int position) return 0; public View getView关键的是这个方法,它将返回一个View提供给适配器。(int position, View convertView, ViewGroup parent) ImageView imageView; if (convertView = null) / if its not recycled, initialize some attributes imageView = new ImageView(mContext); imageView.setLayoutParams(new GridView.LayoutParams(85, 85); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setPadding(8, 8, 8, 8); else imageView = (ImageView) convertView; imageView.setImageResource(mThumbIdsposition); return imageView; / references to our images private Integer mThumbIds = R.drawable.grid_view_01, R.drawable.grid_view_02, R.drawable.grid_view_03, R.drawable.grid_view_04, R.drawable.grid_view_05, R.drawable.grid_view_06, R.drawable.grid_view_07, R.drawable.grid_view_08, R.drawable.grid_view_09, R.drawable.grid_view_10, R.drawable.grid_view_11, R.drawable.grid_view_12, R.drawable.grid_view_13, R.drawable.grid_view_14, R.drawable.grid_view_15, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7 ;3、 XML标签:十五、Tab(标签)1、 获取组件同其他组件不太一样,不能直接以findViewById()从R中获取。TabHost tabHost = getTabHost();注意这里不是直接获取的Tab,而是用getTabHost()获取TabHost,再绑定其模板,进而绑定每个标签的内容。LayoutInflater.from(this).inflate(R.layout.tab_demo,tabHost.getTabContentView(), true);这个方法好像很重要,很多地方出现过,目前因为没有找到可查的SDK,以后补充。tabHost.addTab(tabHost.newTabSpec(tab1).setIndicator(tab1).setContent(R.id.view1);tabHost.addTab(tabHost.newTabSpec(tab3).setIndicator(tab2).setContent(R.id.view2);tabHost.addTab(tabHost.newTabSpec(tab3).setIndicator(tab3).setContent(R.id.view3);这里不明白为什么会有两个tab3?2、 这个组件好像不用在XML里进行申明,在XML里申明了TextView,并将其设置成tab的content。友好的菜单-menu介绍与实例1、 这个组件的用法感觉同Tab的用法还是有一些相似的,都是用add方法的。2、 获取组件的方法:这涉及到一个回调方法onCreateOptionsMenu(),当按下手机上的Menu键的时候,会自动调用这个方法。下面是代码:public boolean onCreateOptionsMenu(Menu menu) super.onCreateOptionsMenu(menu);这里生成了Menu,生成的方式很独特,有点不好理解,以后补充。menu.add(0分组的id,如果不用分组就用0., ITEM0Menu当中每一项的id,这个id应该是唯一的。, 0排序的信息,根据这个字段的大小,menu对其中的项进行排序显示。Order小的显示在前边,大的显示后边。, 显示button1Menu项的显示信息);menu.add(0, ITEM1, 0, 显示button2);这里是跟Tab组件相似的地方,这几个参数的意思是见其他的批注。menu.findItem(ITEM1);不知道这个是做什么用的。return true;3、 这个组件同Tab一样,也不需要在XML文件里面申明。用XML申明需要显示的View,然后在相应的方法里面控制显示即可。4、 当点击menu的Item项的时候,会解发一个回调函数,相当于一个onClick事件:public boolean onOptionsItemSelectedAndroid里面似乎有很多这种需要熟记的重写的方法。(MenuItem 隶所于Menu的所有Item项。item) switch (item.getItemId() case ITEM0: actionClickMenuItem1();break;case ITEM1: actionClickMenuItem2(); break;return super.onOptionsItemSelected(item);Intent和Activity介绍与实例1、 什么是Intent?Intent是一次即将操作的抽象描述。一共用到了三种Intent,现在使用的这种Intent是第一种,它的作用就是启动一个新的Activity并且可以携带数据,还有两种分别是:1) 通过Intent来启动一个服务(Service)2) 通过Intent来广播一个事件。2、 在这个例子里面主要要理解的是Intent的返回值:public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);listener1 = new OnClickListener() public void onClick(View v) Intent intent1 = new Intent(ActivityMain.this, Activity1.class);intent1.putExtra(activityMain, 数据来自activityMain);将一组名值对添加到Intent的mExtras变量里边,它是一个Bundle类型,Bundle使用起来有点像HashMap,不同的是它存放的只能是基本数据类型,或基本数据类型的数组。startActivityForResult(intent1, REQUEST_CODE);用这个方法启动Activity时,当新的Activity运行结束后,还必须执行原Activity里的回调函数onActivityResult()。这个方法的第二个参数是一个整型的请求码。如果请求码大于0的时候,当新的Activity执行结束的时候,这个请求码被返回到onActivityResult()的参数里边,通过不同的请求码使得在Activity的回调函数OnActivityResult()针对不同的Activity的返回值进行不同的代码操作。;setContentView(R.layout.main);button1 = (Button) findViewById(R.id.button1);button1.setOnClickListener(listener1);setTitle(ActivityMain); Overrideprotected void onActivityResult这个就是上文提到的回调函数。(int requestCode, int resultCode, Intent data) if (requestCode = REQUEST_CODErequestCode是请求值,最初是在由startActivityForResult()方法的第二个参数来决定的,具体参考F41批注。) if (resultCode = RESULT_CANCELEDresultCode是运行结束的Activity的返回值。这个值暗示了在新的Activity当中的操作是否合法,如果一切都是正确的,那么返回值就是0.根据不同的resultCode进行不同的处理,在这个例子里有两种resultCode,当热resultCode=RESULT_CANCELED时候说明操作失败了,当resultCode=RESULT_OK,说明一切正常。)setTitle(取消);else if (resultCode = RESULT_OK) String temp=null; Bundle extras = data.getExtras();要获取Inent里面传递的数据,先得到里面的bundle,再通过getString方法去获取相应的值。 if (extras != null) temp = extras.getString(store); setTitle(temp);3、 在来看看新的Activity里怎么获取原Activity里传递过来的数据及传递数据给原Activity:Bundle extras = getIntent().getExtras();原Activity里面用Intent的putExtras写入要传递的数据,这里用Intent里相应的方法获取数据。 if (extras != null) data = extras.getString(activityMain); Bundle bundle = new Bundle();不明白这里为什么要这么写,先构建了一个Bundle,再把这个Bundle放入Intent,而不像上面的做法,直接在Intent里面put。bundle.putString(store, 数据来自Activity1);Intent mIntent = new Intent();mIntent.putExtras(bundle);setResult(RESULT_OK, mIntent);这里第一个参数是返回的结果码,在原Activity有用到,参考上面的代码。第二个参数就是需要返回给调用此Activity的Intent。finish();结束当前的ActivityListView(列表)1、 组件的获取:这个组件也是不需要在XML文件里申明的,直接在Java文件里进行实例化即可。ListView listView = new ListView(this);注意参数,以后补充2、常用方法:listView.setAdapter这个是列表最常用的方法,参数为ListAdapter,它有两个直接子类ArrayAdapter和SimpleAdapter,在这里是将ArrayAdapter的数据显示出来。之前讲解Spinner的时候也曾用到过,它有三个参数,第一个参数是Context,即上下文的引用;第二个参数为一个在R文件里边定义的Layout,在这里用的是系统的R文件;第三个参数是一个数组。(new ArrayAdapter(this,android.R.layout.simple_list_item_single_choiceAndroid默认的布局方式常用的有以下几种:Android.R.layout_single_list_item_1,每一项只有一个TextView;Android.R.layout_single_list_item_2,每一项有两个TextView;Android_R_layout_simple_list_item_single_choice每一项有一个TextView,但是这一项可以被选择。, data);listView.setAdapter(new SimpleAdapter这个也是ListAdapter下的直接子类,其构造函数里有五个参数:第一个参数是上下文,第二个参数是基于Map的List,Data里边的每一项都和ListView里边的每一项对应。第三个参数是一个layout,这个layout至少要包含最后一个参数里出现的View。第四个参数是一个名字的数组,每一个名字是为了在ArrayList中的每一个item中索引Map用的,即应该是Map的key值。第五个参数是一个TextView的数组,这些Textview是以id的形式来表示的。(this, data, android.R.layout.simple_list_item_1, new String 姓名 , new int android.R.id.text1 );总结一下,ListView组件的获取是通过在Java类文件里面实例化获得的,若要使它显示需要,就要绑定其相应的ListAdpater的适配器,这个适配器有两个直接的子类:ArrayAdapter和SimpleAdapter:1)前者是联系数组和Listview的桥梁,后者是联系ArrayList和Listview的桥梁。2)前者的构造函数里包含三个参数,后者的构造函数里包含五个参数。共同的参数是上下文,布局文件,数据源。后者比前者多的两个参数分别是From,to,这两个参数的作用是从Map里寻找对应的Object对应到view里面。2、 listView里的常用事件:1) onItemClickListener,用法同button里的onClickListener,当用户单击了ListView当中的某一项后,系统会自动执行这个函数。OnItemClickListener listener = new OnItemClickListener() public void onItemClick(AdapterView parent, View view, int position,long id) 回调函数,它有四个参数,第一个为被单击的ListView;第二个参数数是一个View,代表用户选中的那一项;第三个参数为选中的View在ListView当中的位置;第四个参数为被选中的那一行的id。setTitle(parent.getItemAtPosition(position).toString()非常有用且经常用的的方法,它可以通过positiion获得和这一行绑定的数据。);listView.setOnItemClickListener(listener); 将监听器注册到ListView里。2)OnItemSelectedListener,用法同上,但不知道为什么Demo运行的时候出不来效果。当用户选择了ListView里的一项后会自动调用这个函数。OnItemSelectedListener itemSelectedListener = new OnItemSelectedListener()/OverrideDemo里的这一句报错,直接注释掉后效果又出不来。重新重写父类的方法后还是出不来效果。以后补充。public void onItemSelected参数跟单击事件里的方法是一样的,见批注F54(AdapterView parent, View arg1,int position, long arg3) setTitle(您选中的软件是: +parent.getItemAtPosition(position).toString();用法同单击事件一样。/Overridepublic void onNothingSelected(AdapterView arg0) setTitle();3、listView里的一种特例:因为在很多情况下每一个Activity里边都是只有一个ListView,而且这个ListView都会占满一屏。所以Android提供了一个类叫ListActivity,它即是一个Activity又有ListView的特征。这种Activity对应的XML必须定义一个ListView,并且这个ListView的Id是“id/Android:list”,这个名字是Android系统预设的,也就是说在ListActivity当中,Android系统能通过这个预设的id得到这个ListView。另外一个需要定义但并非必需的是id为“id/Android:empty”的textView,当ListView没有数据可显示时,这个TextView可以友好地展示出对用户的提示信息。必需的 非必需的,强烈建议使用。 在ListActivity里边不用注册监听器,而是直接重写onListenerClick就可以对单击ListView的事件进行处理。它是一个回调函数。Dialog(对话框)1、 首先要明白一个概述,Dialog并非继承于View类,而是直接从java.lang.Object构造出来的。2、 调用Dialog两个常用的方法:showDialog和dismissDialog。其中调用前者的时候会触发两个回调函数,onCreateDialog和onPrepareDialog。如果这个Dialog是第一次生成,系统将反向调用Dialog的回调函数,onCreateDialog,然后调用onPrepareDialog;如果这个Dialog已经生成,只不过还没有显示出来,将会直接调用onPrepareDialog,这个方法使得有机会在显示前对Dialog做一些修改,比如对Dialog的标题进行修改。Button button1 = (Button) findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener() public void onClick(View v) showDialog(DIALOG1);负责将id为DIALOG1的Dialog显示出来。);3、 构造Dialog的具体过程:private Dialog buildDialog2这是一个自己写的方法,由onCreateDialog去调用。(Context context) AlertDialog.Builder builder = new AlertDialog.Builder(context);生成一个AlertDialog.Bui
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防安全检查员培训课件
- 医疗器械经理工作汇报
- 东北师范大学民俗馆讲解
- 新旧技术合作协议更替原协议作废确认书
- 节假日租车合同终止及车辆返还标准范本
- 私立幼儿园教师儿童社会实践活动指导聘用合同
- 离婚协议书中双方共同财产分割方案示范
- 离异父母子女抚养费增加及支付条件变更协议
- 离婚子女抚养费支付及探望权调整补充协议
- 夫妻关系修复后再破裂协议书范本
- 2025年自来水集团招聘笔试参考题库含答案解析
- 新教师入职工作安排流程
- 2024年中国室内高尔夫设备市场调查研究报告
- 《商务英语视听说(3)》教学大纲
- 洱海保护课件
- (北师大版2024)七年级数学上学期期中测试卷
- 2024八年级数学上册第12章一次函数12.1函数第1课时上课课件新版沪科版
- 义务教育法主题班会课件
- 2024年秋新译林版英语三年级上册 Unit 3第1课时 Cartoon time 教学课件
- 全国计算机等级考试一级历年考试真题试题库(含答案)
- 研学旅行合同
评论
0/150
提交评论