androidlistview进度条
㈠ android缃戠粶锷犺浇杩涘害𨱒℃庝箞浣跨敤
銆鐢变簬Android镄勭晫闱㈡洿鏂板彧鑳介氲繃镊宸辩殑UI绾跨▼杩涜屾搷浣滐纴镓浠ラ渶瑕佺敤鍒癏andler鍦ㄨ繘琛屾洿鏂扮晫闱㈢殑镎崭綔銆
1銆佸0鏄庡彉閲
private Handler handler = new Handler();
private ProgressDialog progressDialog = null;
2銆佸湪寮濮嬭繘琛岀绣缁滆繛鎺ユ椂鏄剧ず杩涘害𨱒″硅瘽妗
銆銆progressDialog = ProgressDialog.show(MyActivity.this, "璇风◢绛...", "銮峰彇鏁版嵁涓...", true);
3銆佸湪handler.post涓杩涜岀晫闱㈡洿鏂
public void setListAdapter(){
handler.post(new Runnable() {
public void run() {
//灏呜幏鍙栧埌镄勬暟鎹镟存柊鍒板垪琛ㄤ腑
MyListView.setAdapter(saImageItems);
}
}
});
4銆佸紑涓鏂扮殑绾跨▼杩涜岀绣缁滆繛鎺ヨ幏鍙栨暟鎹
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
//钖戞湇锷″櫒璇锋眰鏁版嵁
mapList=MyAPI.getAllDatas();
setListAdapter(mapList);
//镟存柊瀹屽垪琛ㄦ暟鎹锛屽垯鍏抽棴瀵硅瘽妗
progressDialog.dismiss();
}}).start();
鏁翠釜杩囩▼灏辫繖镙峰畬鎴愪简锛
㈡ 关于Android界面组件的基本用法
1.文本框(TextView)和编辑框(EditText)
文本框(TextView)不允许用户编辑文本内容,而编辑框(EditText)允许用户编辑文本内容
2.按钮(Button)和图片按钮(ImageButton)
Button显示文字,ImageButton显示图片。
为ImageButton指定android:text属性没用,不会显示文字
可以指定android:background为按钮增加背景图片,但这图片是固定的
可以指定android:src为图片按钮增加图片属性
其实,src才是设置图标,而background只是设置背景。
如果控件的大小是100 100 图片资源是80 80的话,那么用src,图片就会居中显示,如果使用background那么图片就会被拉伸充满控件。
重要的是,background是底层的图片资源,src是覆盖在background上面的资源,他们可以叠加使用,实现选中的效果。
3.单选按钮(RadioButton)和复选框(CheckBox)
多了一个android:checked属性,用于指定初始时是否被选中
4.计时器组件Chronometer用法
红色字体表示常用的方法
5.图像视图(ImageView)
它支持属性android:scaleType setScaleType(ImageView.ScaleType)
matrix(ImageView.ScaleType.MATRIX):使用matrix方式进行
fixXY(ImageView.ScaleType.FIX_XY):对图片横向纵向独立缩放,会改变纵横比
fitStart(ImageView.ScaleType.FIT_START):保持纵横比,图片较长的边长与ImageView相应的边长相等,缩放后放在左上角
fitCenter(ImageView.ScaleType.FIT_CENTER):保持纵横比,图片较长的边长与ImageView相应的边长相等,缩放后放在中央
fitEnd(ImageView.ScaleType.FIT_END):保持纵横比,图片较长的边长与ImageView相应的边长相等,缩放后放在右下角
center(ImageView.ScaleType.CENTER):放中间,不缩放
centerCrop(ImageView.ScaleType.CENTER_CROP):保持纵横比,使图片能完全覆盖ImageView
centerInside(ImageView.ScaleType.CENTER_INSIDE):保持纵横比,使ImageView能完全显示图片
6.spinner的功能和用法
如果可以确定spinner里面的列表项,那么直接在/res/layout/main.xml里面指定
然后在/res/value/string.xml里面指定
如果不确定里面的列表项,那么必须要提供一个Adapter,这个Adapter负责决定Spinner列表每项的内容
7.日期、时间选择器(DatePicker和TimePicker)
8.自动完成文本框(AutoCompleteTextView)
比普通文本框多了一个功能:当用户输入一定字符后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择某个菜单后,组件会按用户选择自动填写该文本框
使用该组件很简单,只要为它设置一个Adapter,该Adapter封装了AutoCompleteTextView预设的提示文本
9.进度条(ProgressBar)
通过style属性可以为ProgressBar指定风格。该属性可以有如下的属性值:
1.@android:style/Widget.ProgressBar.Horizontal 水平进度条
2.@android:style/Widget.ProgressBar.Inverse 不断跳跃、旋转画面的进度条
3.@android:style/Widget.ProgressBar.Large 大进度条
4.@android:style/Widget.ProgressBar.Large.Inverse不断跳跃、旋转画面的大进度条
5.@android:style/Widget.ProgressBar.Small 小进度条
6.@android:style/Widget.ProgressBar.Small.Inverse不断跳跃、旋转画面的小进度条
ProgressBar提供如下方法来操作进度
1.setProgress(int) 设置进度的完成百分比
2.incrementProgressBy(int) 设置进度条的增加或减少。参数为正增加,参数为负减少
10.选项卡(TabHost)
TabHost仅仅只是一个简单的容器,它提供如下方法
1.newTabSpec(String tag) 创建选项卡
2.addTab(TabHost.TabSpec tabSpec) 添加选项卡
使用TabHost的一般步骤为:
• A. 在界面中定义TabHost组件,并为该组件定义该选项卡的内容
• B. Activity应该继承TabActivity
• C. 调用TabActivity的getTabHost()来获取TabHost对象
• D. 通过TabHost对象的方法来创建选项卡、添加选项卡
选项卡主要由TabHost、TabWidget、FrameLayout3个组件组成,三者缺一不可,想象一下选项卡的特点,多个卡重叠在一起,所以用FrameLayout即帧布局是必要的。另外需要注意的是TabHost、TabWidget、FrameLayout三个组件的android:id必须使用系统默认的名称,而不能自己随意定义,否则会出错。
11.图像切换器(ImageSwitcher)
12.网格视图(GridView)
使用GridView一般指定numColumn大于1,否则取默认值为1.那么GridView就变成了ListView
属性android:stretchMode支持如下属性
1.none 不拉伸
2.spacingWidth 仅拉伸元素之间的间距
3.spacingWidthUniform 表格、元素之间的间距一起拉伸
4.columnWidth 仅拉伸表格
13.画廊视图(Gallery)(现在已经被弃用了,不过还是列出来吧)
Gallery用法很简单——为它提供一个内容Adapter,该Adapter的getView方法所返回的View可作为Gallery的列表项。可以通过OnItemSelectedListener监听选择项的改变
14.列表试图(ListView和ListActivity)
1.创建ListView由两种方式:
2.直接使用ListView进行创建
让Activity继承ListActivity(继承了ListActivity的类无需调用setContentView()来显示页面,可以直接设置适配器)
一旦获得ListView后,就要创建显示的列表项了。需要借助内容Adapter,内容Adapter负责提供需要显示的列表项
创建ArrayAdapter时必须指定一个textViewResourceId,该参数决定每个列表项的外观
1.simple_list_item_1 每个列表项是普通的TextView
2.simple_list_item_2 每个列表项是普通的TextView(字体略大)
3.simple_list_item_checked 每个列表项是已勾选的列表项
4.simple_list_item_multiple_choice 每个列表项是带多选框的文本
5.simple_list_item_single_choice 每个列表项是带多单选按钮的文本
15.使用AlertDialog
1.创建AlertDialog.Builder对象,该对象是AlertDialog的创建器
2.调用AlertDialog.Builder方法为对话框设置图标、标题等
3.调用AlertDialog.Builder的create()方法创建AlertDialog对话框
4.调用AlertDialog的show()方法显示对话框
16.使用Toast显示提示框
步骤如下:
• 调用Toast构造器或makeText方法创建Toast对象
• 调用Toast方法来设置该消息的对齐方式等
• 调用Toast的show()方法显示出来
• Toast toast = Toast.makeText(ToastTest.this, "信息", Toast.LENGTH_LONG).show();
17.Notification(一般显示网络状态、电池状态、时间等)
使用Notification发送Notification步骤:
• 调用getSystemService(NOTIFICATION_SERVICE)方法获取系统的Notification Manager服务
• 通过构造器创建一个Notification对象
• 为Notification设置属性
• 通过Notification Manager发送Notification
㈢ android网络编程学什么,如何学习android网络编程
第一个问题解答:android网络编程学习内容详解:
1.0 Android基础入门教程
1.1 背景相关与系统架构分析
1.2 开发环境搭建
1.2.1 使用Eclipse + ADT + SDK开发Android APP
1.2.2 使用Android Studio开发Android APP
1.3 SDK更新不了问题解决
1.4 Genymotion模拟器安装
1.5.1 Git使用教程之本地仓库的基本操作
1.5.2 Git之使用GitHub搭建远程仓库
1.6 .9(九妹)图片怎么玩
1.7 界面原型设计
1.8 工程相关解析(各种文件,资源访问)
1.9 Android程序签名打包
1.11 反编译APK获取代码&资源
2.1 View与ViewGroup的概念
2.2.1 LinearLayout(线性布局)
2.2.2 RelativeLayout(相对布局)
2.2.3 TableLayout(表格布局)
2.2.4 FrameLayout(帧布局)
2.2.5 GridLayout(网格布局)
2.2.6 AbsoluteLayout(绝对布局)
2.3.1 TextView(文本框)详解
2.3.2 EditText(输入框)详解
2.3.3 Button(按钮)与ImageButton(图像按钮)
2.3.4 ImageView(图像视图)
2.3.5.RadioButton(单选按钮)&Checkbox(复选框)
2.3.6 开关按钮ToggleButton和开关Switch
2.3.7 ProgressBar(进度条)
2.3.8 SeekBar(拖动条)
2.3.9 RatingBar(星级评分条)
2.4.1 ScrollView(滚动条)
2.4.2 Date & Time组件(上)
2.4.3 Date & Time组件(下)
2.4.4 Adapter基础讲解
2.4.5 ListView简单实用
2.4.6 BaseAdapter优化
2.4.7ListView的焦点问题
2.4.8 ListView之checkbox错位问题解决
2.4.9 ListView的数据更新问题
2.5.0 构建一个可复用的自定义BaseAdapter
2.5.1 ListView Item多布局的实现
2.5.2 GridView(网格视图)的基本使用
2.5.3 Spinner(列表选项框)的基本使用
2.5.4 AutoCompleteTextView(自动完成文本框)的基本使用
2.5.5 ExpandableListView(可折叠列表)的基本使用
2.5.6 ViewFlipper(翻转视图)的基本使用
2.5.7 Toast(吐司)的基本使用
2.5.8 Notification(状态栏通知)详解
2.5.9 AlertDialog(对话框)详解
2.6.0 几种常用对话框基本使用
2.6.1 PopupWindow(悬浮框)的基本使用
2.6.2 菜单(Menu)
2.6.3 ViewPager的简单使用
2.6.4 DrawerLayout(官方侧滑菜单)的简单使用
3.1.1 基于监听的事件处理机制
3.2 基于回调的事件处理机制
3.3 Handler消息传递机制浅析
3.4 TouchListener PK OnTouchEvent + 多点触碰
3.5 监听EditText的内容变化
3.6 响应系统设置的事件(Configuration类)
3.7 AnsyncTask异步任务
3.8 Gestures(手势)
4.1.1 Activity初学乍练
4.1.2 Activity初窥门径
4.1.3 Activity登堂入室
4.2.1 Service初涉
4.2.2 Service进阶
4.2.3 Service精通
4.3.1 BroadcastReceiver牛刀小试
4.3.2 BroadcastReceiver庖丁解牛
4.4.1 ContentProvider初探
4.4.2 ContentProvider再探——Document Provider
4.5.1 Intent的基本使用
4.5.2 Intent之复杂数据的传递
5.1 Fragment基本概述
5.2.1 Fragment实例精讲——底部导航栏的实现(方法1)
5.2.2 Fragment实例精讲——底部导航栏的实现(方法2)
5.2.3 Fragment实例精讲——底部导航栏的实现(方法3)
5.2.4 Fragment实例精讲——底部导航栏+ViewPager滑动切换页面
5.2.5 Fragment实例精讲——新闻(购物)类App列表Fragment的简单实现
6.1 数据存储与访问之——文件存储读写
6.2 数据存储与访问之——SharedPreferences保存用户偏好参数
6.3.1 数据存储与访问之——初见SQLite数据库
6.3.2 数据存储与访问之——又见SQLite数据库
7.1.1 Android网络编程要学的东西与Http协议学习
7.1.2 Android Http请求头与响应头的学习
7.1.3 Android HTTP请求方式:HttpURLConnection
7.1.4 Android HTTP请求方式:HttpClient
7.2.1 Android XML数据解析
7.2.2 Android JSON数据解析
7.3.1 Android 文件上传
7.3.2 Android 文件下载(1)
7.3.3 Android 文件下载(2)
7.4 Android 调用 WebService
7.5.1 WebView(网页视图)基本用法
7.5.2 WebView和javaScrip交互基础
7.5.3 Android 4.4后WebView的一些注意事项
7.5.4 WebView文件下载
7.5.5 WebView缓存问题
7.5.6 WebView处理网页返回的错误码信息
7.6.1 Socket学习网络基础准备
7.6.2 基于TCP协议的Socket通信(1)
7.6.3 基于TCP协议的Socket通信(2)
7.6.4 基于UDP协议的Socket通信
8.1.1 Android中的13种Drawable小结 Part 1
8.1.2 Android中的13种Drawable小结 Part 2
8.1.3 Android中的13种Drawable小结 Part 3
8.2.1 Bitmap(位图)全解析 Part 1
8.2.2 Bitmap引起的OOM问题
8.3.1 三个绘图工具类详解
8.3.2 绘图类实战示例
8.3.3 Paint API之—— MaskFilter(面具)
8.3.4 Paint API之—— Xfermode与PorterDuff详解(一)
8.3.5 Paint API之—— Xfermode与PorterDuff详解(二)
8.3.6 Paint API之—— Xfermode与PorterDuff详解(三)
8.3.7 Paint API之—— Xfermode与PorterDuff详解(四)
8.3.8 Paint API之—— Xfermode与PorterDuff详解(五)
8.3.9 Paint API之—— ColorFilter(颜色过滤器)(1/3)
8.3.10 Paint API之—— ColorFilter(颜色过滤器)(2-3)
8.3.11 Paint API之—— ColorFilter(颜色过滤器)(3-3)
8.3.12 Paint API之—— PathEffect(路径效果)
8.3.13 Paint API之—— Shader(图像渲染)
8.3.14 Paint几个枚举/常量值以及ShadowLayer阴影效果
8.3.15 Paint API之——Typeface(字型)
8.3.16 Canvas API详解(Part 1)
8.3.17 Canvas API详解(Part 2)剪切方法合集
8.3.18 Canvas API详解(Part 3)Matrix和drawBitmapMash
8.4.1 Android动画合集之帧动画
8.4.2 Android动画合集之补间动画
8.4.3 Android动画合集之属性动画-初见
8.4.4 Android动画合集之属性动画-又见
9.1 使用SoundPool播放音效(Duang~)
9.2 MediaPlayer播放音频与视频
9.3 使用Camera拍照
9.4 使用MediaRecord录音
10.1 TelephonyManager(电话管理器)
10.2 SmsManager(短信管理器)
10.3 AudioManager(音频管理器)
10.4 Vibrator(振动器)
10.5 AlarmManager(闹钟服务)
10.6 PowerManager(电源服务)
10.7 WindowManager(窗口管理服务)
10.8 LayoutInflater(布局服务)
10.9 WallpaperManager(壁纸管理器)
10.10 传感器专题(1)——相关介绍
10.11 传感器专题(2)——方向传感器
10.12 传感器专题(3)——加速度/陀螺仪传感器
10.12 传感器专题(4)——传感器了解
10.14 Android GPS初涉
第二个问题解答:如何学习android网络编程:
1. Android学习之路,博客是Android新手必备资料。
2. 书不在多,适合就好,这里推荐一本Android和两本Java书籍吧。
《第一行代码》:郭霖大神的着作。
《Thinking In Java》:Java经典书籍,不必说。
《Effective Java》:Java进阶必备书籍。
3. 有些人一开始看书也有困难,没关系,那就去网上看视频,结合视频和书一起看,边看边敲。
4. 多去混GitHub,目前最流行的开源社区,多参与开源项目,慢慢试着读牛人们的代码,时机到的时候自己也可以为开源社区贡献力量,可以这样说在GitHub上认真混一年。
5. 关注一些Android界不错的博客。
6. 善于利用搜索引擎,从用Google做起,学会英文关键字搜索,有问题第一时间想到去搜索而不是去请教别人。
㈣ android上拉刷新下拉加载 通用框架怎么用
1. 关于下拉刷新
下拉刷新这种用户交互最早由twitter创始人洛伦•布里切特(Loren Brichter)发明,有理论认为,下拉刷新是一种适用于按照从新到旧的时间顺序排列feeds的应用,在这种应用场景中看完旧的内容时,用户会很自然地下拉查找更新的内容,因此下拉刷新就显得非常合理。大家可以参考这篇文章:有趣的下拉刷新,下面我贴出一个有趣的下拉刷新的案例。
2. 实现原理
上面这些例子,外观做得再好看,他的本质上都一样,那就是一个下拉刷新控件通常由以下几部分组成:
【1】Header
Header通常有下拉箭头,文字,进度条等元素,根据下拉的距离来改变它的状态,从而显示不同的样式
【2】Content
这部分是内容区域,网上有很多例子都是直接在ListView里面添加Header,但这就有局限性,因为好多情况下并不一定是用ListView来显示数据。我们把要显示内容的View放置在我们的一个容器中,如果你想实现一个用ListView显示数据的下拉刷新,你需要创建一个ListView旋转到我的容器中。我们处理这个容器的事件(down, move, up),如果向下拉,则把整个布局向下滑动,从而把header显示出来。
【3】Footer
Footer可以用来显示向上拉的箭头,自动加载更多的进度条等。
㈤ Android基础知识
一、activity
1.一个activity就是一个类,继承activity;
2.需要复写onCreate()方法;
3.每一个activity都需要在AndroidMainfest.xml清单上进行配置;
4.为activity添加必要的控件。
二、布局
线性布局:LinearLayout
1.填满父空间:fill_parent、match_parent
2.文本多大空间就有多大:warp_content
3.文字对齐方式:gravity
4.占屏幕的比例:layout_weight="1" 水平方向,则width=0,垂直方向,则height=0
5.一行显示,空间不够会省略:singleLine="ture" false会换行
6.背景:background="#ffffff"
7.水平布局:orientation="horizontal"
垂直布局:orientation="vertivcal"
表格布局:TableLayout
1.内边距:padding
2.外边距:marginLeft\Start、Right\End、Top、Bottom
三、RelativeLayout相对布局
layout_above 将该控件的底部置于给定ID控件之上
layout_below 将该控件的顶部置于给定ID控件之下
layout_toLeftOf 将该控件的右边缘和给定ID控件的左边缘对齐
layout_toRightOf 将该控件的左边缘和给定ID控件的右边缘对齐
layout_alignBaseline 该控件的baseline和给定ID的控件的Baseline对齐
layout_alignBottom 该控件的底部边缘和给定ID的控件的底部边缘对齐
layout_alignLeft 该控件的左边缘和给定ID的控件的左边缘对齐
layout_alignRight 该控件的右边缘和给定ID的控件的右边缘对齐
layout_alignTop 该控件的顶部边缘和给定ID的控件的顶部边缘对齐
layout_alignparentBottom 如果该值为true,则该控件的底部和父控件的底部对齐layout_alignParentLeft 如果该值为true,则该控件的左边和父控件的左边对齐
layout_alignParentRight 如果该值为true,则该控件的右边和父控件的右边对齐
layout_alignParentTop 如果该值为true,则该控件的上边和父控件的上边对齐
layout_centerHorizontal 如果该值为true,则该控件将被置于水平方向的中央
layout_centerInParent 如果该值为true,则该控件将被置于父控件水平和垂直方向的中央
layout_centerVertival 如果该值为true,则该控件将被置于垂直方向的中央
四、一个Intent对象包含一组信息
1.Component name
2.Action
3.Data
4.Category
5.Extras
6.Flags
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent); //startActivity方法
intent.putExtra("Key", "Value"); //键值对
intent = getIntent();
String value = intent.getStringExtra("Key"); //通过键提取数据
五、初级控件:EditText、TextView、Button
1.获取EditText的值
String value = EditText.getText().toString();
2.将值放到Intent对象中
Intent intent = new Intent();
intent.putExtra("one",value )
intent.setCalss(Activity.this, OtherActivity.class);
3.使用这个Intent对象来启动Otheractivity
Activity.this.startActivity(intent);
4.将监听器的对象绑定到按钮对象上
button.setOnclickListener(new Listener());
5.得到Intent对象当中的值
Intent intent = getIntent();
String value1 = intent.getStringExtra("one");
int value2 = Integer.parseInt(value);
六、其他初级控件使用
①ImageView
②RadioGroup和RadioButton
setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener())
③Checkbox
setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener())
④Menu
1.当客户点击MENU按钮的时候,调用onCreateOptionMenu()方法
public boolean onCreateOptionMenu(Menu menu){
menu.add(0,1,1,R.string.id);
}
2.当客户点击MENU内部的具体某一个选项时,调用onOptionItemSelected()方法
public boolean onOptionItemSelected(MenuItem item){
if(item.getItemId() == 1){
finish();
}
return super.onOptionItemSelected(item);
}
七、Activity的生命周期
1.第一次创建时调用
protected void onCreat(Bundle saveInstanceState);
2.显示出来时调用
protected void onStrat();
3.获得用户焦点时调用(可操作)
protected void onResume();
4.点击弹出第二个Activity时调用
protected void onPause();
5.当第一个Activity不可见时调用
protected void onStop();
6.当返回第一个Activity时调用,代替OnCreate,因为没被销毁
protected void onRestart();
7.当返回第一个Activity时调用(先执行onStop,在执行,因为第二个Activity被销毁,不能返回获取,只能通过onCreat,onStart,onResume再创建)
protected void onDestory();
八、Task
1.Task是存放Activity的Stack栈。当点击启动第二个Activiry时,第一个Activtiy会被压入Stack栈当中,第二个Activity会位于栈的顶部;当返回第一个Activtiy时,第二个Activity会被弹出Stack,第一个Activity会位于栈的顶部,以此类推。
注释:当调用finish()时,当前的Activity会被Destory掉,栈中的Activity会消失。
2.当Activity都从Stack退出后,则就不存在Task。
九、高级控件
①进度条ProgressBar
水平进度条style="?android:attr/progressBarStyleHorizontal"
圆圈进度条style="?android:attr/progressBarStyle"
用户可视的visibility="gone"
②列表ListView
十、其他控件
A.下拉菜单Spinner
1.创建一个ArrayAdapter:
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, //指上下文对象
R.array.plant_array, //引用了在文件中定义的String数组
android.R.layout.simple_spinner_item);//用来指定Spinner的样式,可替换自定义
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);//设置Spinner当中每个条目的样式
2.得到Spinner对象,并设置数据:
spinner=(spinner)findViewById(R.id.spinnerId);
spinner.setAdapter(adapter);
spinner.setPrompt("测试");//标题
3.创建监听器
class SpinnerOnSelectListener implements OnItemSelectedListener{
@override
public void onItemSelected(
AdapterView<?> adapterView,//整个列表对象
View view,//被选中的具体条目对象
int position,//位置
long id){ //id
String selected = adapterView.getItemAtPosition(position).toString();
}
@override
public void onNothingSelected(AdapterView<?> adapterView){
S.o.p("nothingSelected");
}
}
4.绑定监听器
spinner.setOnItemSelectedListener(new SpinnerOnSelectListener());
注:第二种动态设计
1.创建ArrayList对象
List<String> list = new ArrayList<String>();
list.add("test1");
2. 调用方法
ArrayAdapter adapter = new ArrayAdapter(
this, //指上下文对象
R.layout.item, //引用了指定了下拉菜单的自定义布局文件
R.id.textViewId,//id
list);//数据
3.得到Spinner对象,并设置对象
spinner.setAdapter(adapter);
spinner.setPrompt("测试");//标题
3.创建监听器
class SpinnerOnSelectListener implements OnItemSelectedListener{
@override
public void onItemSelected(
AdapterView<?> adapterView,//整个列表对象
View view,//被选中的具体条目对象
int position,//位置
long id){ //id
String selected = adapterView.getItemAtPosition(position).toString();
}
@override
public void onNothingSelected(AdapterView<?> adapterView){
S.o.p("nothingSelected");
}
}
4.绑定监听器
spinner.setOnItemSelectedListener(new SpinnerOnSelectListener());
B.DatePicker和DatePickerDialog
1.声明一个监听器,使用匿名内部类
DatePickerDialog.OnDateSetListener onDateSetListener
= new DatePivkerDialog.OnDateSetListener(){
public void onDateSet(
DatePicker view,
int year,
int monthOfYear,
int dayOfMonth){
S.o.p(year+"-"+motnOfYear+"-"+dayOfMonth)
}
}
2.复写onCreateDialog(int id)方法:
@override
protected Dialog onCreateDialog(int id){
switch(id){
case DATE_PICKER_ID:
return new DatePickerDialog(this,onDateSetListener,2019,11,25);
}
return null;
}
3.使用时调用showDialog()方法
showDialog(DATE_PICKER_ID);
C.AutoCompleteTextView
B.Widget
C.Animatin
十一、实现ContentProvider过程
1.定义一个CONTENT_URI常量
2.定义一个类,继承ContentProvider
3.实现query、insert、update、delete、getType和onCreate方法
4.在AndroidManifest.xml当中进行声明
㈥ 一般Android培训学校学习课程有哪些
好程序员Android高端班课程,是一套涵盖 Java 语言强化、Java Web 开发、Android 应用开发、Android 游戏开发的专业课程。本套课程真正围绕Android知识体系制订,绝非由Java EE课程、Java ME课程或者Symbian课程改造而成。每一阶段课程涵盖多个实战项目,每个知识点均对应项目中实际功能,学习新知识的同时不断向项目中添加新功能,独特的教学方法帮助学员强化学习目标,迅速提升学习能力。致力于培养Android 高端开发人才,旨在培养真正的 Android 应用和游戏开发能力的高素质人才,学员毕业即具备行业前沿开发技术。
第一阶段 Java面向对象高级编程——java编程语法进阶
该阶段课程重点讲解了面向对象设计原则与设计模式;智能家居之远程监控。
Java面向对象编程
1、面向对象设计原则
2、面向对象设计模式概要
3、面向对象设计模式a.创建型设计模式b.结构型设计模式c.行为模式4、数据结构与常用算法
第二阶段 高级JDK API开发技术 —— Java Web编程
该阶段课程重点讲解了JDK当中的高级API的使用方法,包括新的并发线程库和反射机制。手机安全卫士
Java Web编程
1、并发线程库介绍
2、线程本地变量的使用方法
3、信号量与可重入锁
4、读写锁的使用方法
5、阻塞队列与同步集合库使用方法
6、Java反射机制介绍
7、Class、Field和Method的使用方法
8、动态代理模式的使用方法
9、Java框架开发原理
第三阶段 Android基础阶段大纲
一、UI基础
1.Android环境搭建及工程目录介绍:1.1 Android开发(版本:SDK21及以上版本)环境搭建1.2 Android发展史、移动设备操作系统、四层系统架构等理论知识1.3 HelloWorld程序1.4 adb shell简介(install uninstall)
2.常用UI布局及主要控件2.1 LinearLayout2.2 RelativeLayout2.3 FrameLayout2.4 GridLayout2.5 TextView基本用法
3.表单UI控件及相应控件的事件处理3.1 EditText、Button、ImageView3.2 RadioButton及RadioGroup的用法3.3 CheckBox的多选效果及监听3.4 Toast的基本用法
4.Spinner、AutoCompleteTextView、ScrollView及适配器、数组资源4.1 Spinner4.2 适配器4.3 数组资源4.4 AutoCompleteTextView4.5 ScrollView4.6 ProgressBar、SeekBar、RatingBar
5.UI美化及Android资源5.1 Style的简单用法5.2 Android资源汇总
二、应用核心组件初识
1.Activity生命周期及页面跳转传值1.1 Activity的声明和使用1.2 Activity生命周期1.3 Activity现场保护1.4 Activity基本页面跳转及传值1.5 Activity具有返回值的页面跳转
2.Activity启动模式及Intent七大属性2.1 Task和Back Stack的基本概念2.2 Activity的启动模式2.3 Intent属性的特点及用法
3.AsyncTask异步任务3.1 使用异步任务的必要性3.2 异步任务的用法
4.ListView基本用法及适配器介绍4.1 ListView基本用法4.2 SimpleAdapter4.3 BaseAdapter
5.ListView优化及分页加载数据、GridView加载网络图片、ExpandableListView5.1 ListView优化5.2 ListView滚动监听实现分页加载数据5.3 GridView加载图片
三、数据存储
1.菜单及对话框1.1 OptionsMenu1.2 ContextMenu1.3 PopupMenu1.4 PopupWindow1.5 AlertDialog1.6 ProgressDialog1.7 列表对话框1.8 自定义Dialog
2.数据存储2.1 SharedPreferences2.2 内部存储2.3 外部存储2.4 存储Bitmap图片到外部存储
3.SQLite数据库与CursorAdapter适配器3.1 回顾SQLite3.2 SQLiteOpenHelper的用法3.3 CursorAdapter
4.ContentProvider4.1 ContentResolver实现系统数据库的操作4.2 自定义ContentProvider
5.Loader5.1 CursorLoader的用法5.2 AsyncTaskLoader加载本地数据
四、移动开发主流界面实现
1.动画资源1.1 帧动画1.2 补间动画1.3 属性动画
2.Fragment2.1 Fragment基本用法2.2 Fragment传值2.3 Fragment性能优化
3.ViewPager3.1 ViewPager与适配器3.2 ViewPager加载网络图片3.3 PagerAdapter的优化
4.书签导航4.1 书签导航多种实现方式(无需代码实现)4.2 RadioGroup + ViewPager + Fragment实现导航4.3 HorizontalScrollView + ViewPager + Fragment实现导航
5.Handler、Looper消息传递机制5.1 Handler、Looper消息传递机制的原理5.2 Handler、Looper源码
五、应用核心组件进阶(Android Studio开发环境教学)
1.ActionBar (Action View、SearchView)+ ToolBar1.1 ActionBar1.2 ToolBar
2.BroadcastReceiver及Notification2.1 Notification (普通通知、大视图通知、进度条通知、自定义通知)2.2 广播接收器2.3 自定义发送广播
3.Service基础3.1 Service介绍3.2 Start Service3.3 IntentService3.4 Bind Service3.5 两种服务混合使用实现MediaPlayer音乐播放
4.跨进程的Service4.1 AIDL4.2 Messenger
5.LruCache与Bitmap二次采样、WebView与HTML5混合开发5.1 LruCache5.2 二次采样5.3 WebView5.4 HTML5混合开发
六、View深入探究
1.网络地图1.1 网络地图基本用法1.2 网络地图搜索
2. 事件分发消费机制2.1 事件分发消费机制原理2.2 事件分发消费机制的应用场景
3.自定义View(一)3.1 自定义View介绍3.2 自绘制的自定义View
4.自定义View(二)4.1 具有接口回调的自定义View4.2 继承于ViewGroup的自定义View
5.机型适配及SVN搭建5.1 机型适配介绍5.2 屏幕相关重要概念回顾5.3 机型适配的解决方案5.4 SVN搭建
第四阶段 Android项目实战阶段大纲
一、项目实战第一阶段
1.TabLayout及SlidingPaneLayout1.1 TabLayout(5.0Material Design新技术)与ViewPager配合自定义Tab1.2 SlidingPaneLayout左侧或右侧滑动1.3 NavigationView(5.0Material Design新技术)HeaderLayoutMenu xml配置Navigation监听事件
2.okHttp网络访问框架及Picasso2.1 okHttp框架的介绍2.2 okHttp框架的用法Http请求方法:get,post同步请求,异步请求(回调在非UI线程中)2.3 Picasso加载网络图片的用法简单图片请求Picasso通用配置:内存缓存大小,磁盘缓存大小及位置图片加载配置:下载尺寸,填充模式,加载中图片,错误图片2.4 第三方侧滑菜单:SlidingMenu菜单设置
3.Fresco(壁画异步加载图片框架)3.1 Fresco框架的介绍3.2 Fresco框架的用法(中文文档)简单图片请求Fresco通用配置:内存缓存大小,磁盘缓存大小及位置图片加载配置:下载尺寸,填充模式,加载中图片,错误图片,顶层,底层,图片变形
4.PullToRefresh、SwipeRefreshLayout及Ultra PullToRefresh4.1 PullToRefresh框架配置事件回调多种控件PullToRefreshBase重写4.2 SwipeRefreshLayout配置事件回调4.3 Ultra PullToRefresh(中文文档)配置事件回调多种下拉效果
5.打包(按渠道打包)、混淆及数字签名5.1 按渠道打包基本打包多渠道:资源,清单文件,代码,调试5.2 混淆开启混淆混淆配置:保留类,保留方法,忽略错误5.3 数字签名生成keystore配置签名
二、项目实战第二阶段——Android新技术
1.RecyclerView1.1 5.0新技术介绍(Material Design)设计理念、新增控件1.2 RecyclerView的用法、CardView的用法1.3 RecyclerView与ListView比较
2.5.0Material Design新技术2.1 CoordinatorLayoutToolbar与Layout2.2 TextInputLayout错误监听2.3 Snackbar监听Action2.4 FloatingActionButton属性介绍onClick
3.媒体播放器3.1 视频播放器VideoView3.2 SurfaceView及MediaPlayerSurfaceView介绍与View区别SurfaceHolder与CallBackMediaPlayer.setDisplayMediaPlayer加载网络视频3.3 获取视频缩略图使用Fresco3.4 ListView的item实现视频播放Item显示视频单Item播放Item滚出时停止播放3.5 播放器全屏显示与恢复3.6 Vitamio(维他密播放器)
4.摄像头、传感器、ZXing二维码4.1 利用Intent实现摄像头两种模式,存文件和缩略图4.2 加速度传感器实现《摇一摇》传感器获取传感器监听注册加速度传感 摇一摇4.3 ZXing实现生成二维码(容错等级、二维码正中心Logo)生成BitMatrix转Bitmap容错等级中心Logo4.4 ZXing实现二维码扫描导包
5.JPush推送、ShareSDK一键分享及第三方登录5.1 JPush极光推送的原理及用法通知推送消息推送推送原理5.2 ShareSDK一键分享及第三方登录注册集成分享第三方登录APIOAuth介绍
三、项目实战第三阶段
1.加密解密1.1 对称加密(AES 、DES、3DES)1.2 非对称加密(RSA)1.3 消息摘要(MD5、 SHA-1 )1.4 编码解码(Base64、URLEncode、URLDecode)
2.网络支付2.1 Alipay支付2.2 微信支付
3.ButterKnife(反转注入框架)、EventBus、ActiveAndroid(数据库ORM框架)及Retrofit(网络访问框架)3.1 ButterKnife(反转注入框架)3.2 EventBus的用法3.3 ActiveAndroid(数据库ORM框架)3.4 Retrofit(网络访问框架)
4.项目实战需知4.1Git、UML4.2XMPP4.3常见面试题4.4移动端与服务器端的交互流程4.5移动开发工程师与web工程师工作配合的流程4.6面试常用技巧(面试禁忌)4.7开发规范(代码规范)
第五阶段 就业指导及职业规划