




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品好资料学习推荐安卓入门2015年04月16日星期四上午 10:19 父类和子类的关系:类型包含关系。子类包含父类所有的方法和属性。 继承是为了代码复用。 安卓HelloWorld启动流程:1根据AndroidManifest.xml找到com.wnavy.HelloWorld.MainActivity2创建MainActivity类对象(反射)Activityactivity = new MainActivity();3通过对象调用OnCreate(.);/调用了MainActivity中的OnCreate函数(多态)public class MainActivity extends Ac
2、tivity/入口函数Overrideprotected void onCreate(Bundle savedInstanceState)/调用父类中被重写的OnCreate方法,做初始化工作super.onCreate(savedInstanceState);/根据activity_main.xml文件中的内容做出界面setContentView(R.layout.activity_main); setContentView:setContentView(R.layout.activity_main);/根据传入的View类对象产生界面,其参数可以为任何View类的子类的对象,比如按钮,图片
3、框.也可以是布局文件。 颜色代码:ARGB用8为的十六进制数代表颜色与透明度。0xaaffbbccaa:代表透明度ff:红色bb:绿色cc:蓝色 XML布局文件: 长度单位:1fill_partent, wrap_content2sp-文字大小,40sp3dp-100dp 监听器:监听事件的对象。事件:点击、长按、短按.事件源:点击的对象就是事件源。 创建监听器步骤:-取出事件源对象Button bt = (Button) this.findViewById(R.id.button1);-创建监听器类必须实现OnClickListener接口。class MyListener implemen
4、tsOnClickListenerOverride/回调方法,监听到点击事件后被回调public void onClick(View v)/ TODO Auto-generated method stubButton bt = (Button) v;v.setText = (hello);/在此方法中处理事件操作(点击按钮后的操作)-实例化监听器对象。MyListener listener = new MyListener();-为事件源对象绑定监听器对象。bt.setOnClickListener(listener);/可以把多个事件源绑定到同一个监听器对象上。/setOnClickList
5、ener该方法属于所有控件的父类:view,所以所有空间都可以绑定监听器this:方法内部的this,哪个对象调用该方法,this就代表谁。 弹出框:Toast.makeText(this, hello, Toast.LENGTH_LONG).show(); Contex:场景Button btn = new Button(Ctx);/Ctx是Contex的一个直接或间接子类的对象 安卓MVC模式:M:模型层-业务层V:视图层-xml布局文件C:控制层-Activity 另外一种事件触发机制:-在布局文件中设置OnClick属性-在MainActivity.java中编写事件监听方法publi
6、c ButtonPress1(View v)System.out.println(ButtonPress1); 所有的Activity都必须放在同一包中。所有的Activity都需要配置。 常用控件:Button按钮:TextView文本显示:EditText编辑框:CheckButton单选框:RadioButton多选框:Menu菜单:AlertDialog对话框:方式一:/在布局文件中添加监听方法/编写监听函数 public void ButtonPress1(View v) AlertDialog.Builder builder = new AlertDialog.Builder(th
7、is);/新建 builder.setTitle(错误!);/标题 builder.setMessage(输入内容有误n请重新输入);/内容 builder.setIcon(R.drawable.ic_launcher);/图标 builder.show();/显示 /运行结果如下图:方式二:用布局文件控制对话框的显示方式-dialog2.xml/新建对话框布局文件-MainActivity.java/编写对话框触发事件public void ButtonPress2(View v) AlertDialog.Builder builder = new AlertDialog.Builder(t
8、his);View view = this.getLayoutInflater().inflate(R.layout.dialog2, null);builder.setView(view);final AlertDialog dialog = builder.create(); Button sure = (Button) view.findViewById(R.id.Sure); sure.setOnClickListener(new OnClickListener() public void onClick(View v)/内部类Toast.makeText(MainActivity.t
9、his, 你好, 1).show();); Button exit = (Button) view.findViewById(R.id.Exit); exit.setOnClickListener(new OnClickListener() public void onClick(View v) dialog.cancel();); builder.show(); /运行结果如下图:方式三:新的Activity(启动新界面)-新建Activity和布局文件/TwoActivity.javapublic class TwoActivity extends ActivityOverrideprot
10、ected void onCreate(Bundle savedInstanceState)/ 调用父类中被重写的函数,做初始化工作super.onCreate(savedInstanceState);/ 根据twoactivity.xml文件做出界面this.setContentView(R.layout.twoactivity);/twoactivity.xml -把新Acitvity加入到Manifest.xml文件中 -在MainActivity中启动对话框 public void ButtonPress3(View v) Intent intent = new Intent(); i
11、ntent.setClass(this, TwoActivity.class); this.startActivity(intent); /运行结果如下图: 跳转到新的Activity:public void ButtonPress3(View v) Intent intent = new Intent();/意图对象Class c = TwoActivity.class;/获取TwoActivity类的代码信息intent.setClass(this, TwoActivity.class);/把TwoActivity的代码信息放入到意图对象intent中,后台通过反射根据intent中的代码
12、信息创建TwoActivity类的对象this.startActivity(intent);/跳转到新的Activity(TwoActivity),原来的Activity被压栈。点击返回键会销毁当前的Activity,切换到被压栈的Activity。 带数据跳转:/在父Activity中存放数据(键值对)public void ButtonPress3(View v) Intent intent = new Intent();/意图对象Class c = TwoActivity.class;/获取TwoActivity类的代码信息intent.setClass(this, TwoActivit
13、y.class);/把TwoActivity的代码信息放入到意图对象intent中,后台通过反射根据intent中的代码信息创建TwoActivity类的对象Bundle b = new Bundle();/Bundle中存放键值对b.putString(name, xiaoming);b.putInt(age, 20);intent.putExtras(b);this.startActivity(intent);/跳转到新的Activity(TwoActivity),原来的Activity被压栈。(点击返回键会销毁当前的Activity,切换到被压栈的Activity。)/在子Activit
14、y中通过键值对取出数据public class TwoActivity extends ActivityOverrideprotected void onCreate(Bundle savedInstanceState)/ 调用父类中被重写的函数,做初始化工作super.onCreate(savedInstanceState);/ 根据twoactivity.xml文件做出界面this.setContentView(R.layout.twoactivity);Intent intent = this.getIntent();Bundle bundle = intent.getExteras()
15、;String name = bundle.getString(name);/通过键值对取出数据int age = bundle.getInt(age);System.out.println(name: + name + age: + age); 消息提示框Toast:设置显示内容和显示时间(值为0或1)显示消息提示框设置显示位置根据布局文件设置消息框外观使用之前必须线通过inflate方法找到该布局文件。View view = this.getLayoutInflater().inflate(R.layout.toast, null);/这是一个复合语句,从右到左执行,先调用this的get
16、LayoutInflater()方法,其返回值为一个LayoutInflater 类型的对象,然后调用LayoutInflater 类型对象的inflate方法。Toast toast = new Toast(this);toast.setView(view);toast.show(); ListView:一般方法:-创建ListView对象-创建适配器对象-启动ListViewListView listView = (ListView) this.findViewById(R.id.listView);String names = new Stringaa,bb,cc,dd;/创建是配置对象
17、(泛型)。ListView的外观由name布局文件控制,ListView的内容存在names数组中ArrayAdapter adapter = new ArrayAdapter(this, R., names); listView.setAdapter(adapter);/设置适配器listView.setOnItemClickListener(this);/为ListView创建监听器Overridepublic void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) /arg0:当前点击的L
18、istView对象/arg1:ListView对象中被点击到的某一个项目/arg2:该项目在整个ListView中的序号(从0开始)/arg3:与arg2类似,只不过能表示的范围更大TextView tv=(TextView) arg1;String name = tv.getText().toString();Toast.makeText(this, name+,arg2-+arg2+,arg3-+arg3, Toast.LENGTH_LONG).show();自定义适配器外观:-MainActivity.java ListView listView = (ListView) this.fi
19、ndViewById(R.id.listView);/设置ListView的布局文件 MyAdapter adapter = new MyAdapter(this);/新建适配器对象 listView.setAdapter(adapter);/设置适配器 listView.setOnItemClickListener(this);-MyAdapter.java/自定义适配器类中重写的方法由系统自动调用,无需人工干预public class MyAdapter extends BaseAdapter private List list = new ArrayList();/创建存放数据的容器pr
20、ivate Activity activity;/可以把ListView中要显示的每一项数据通过构造函数传递过来public MyAdapter(Activity activity)this.activity = activity;for (int i = 0; i stu.xml/运行结果如下图: Handler消息传递机制:UI操作只能在主线程中完成。数据传到哪个线程,就在哪个线程中创建Handler对象。消息对象在需要传递数据给其他线程的线程中创建。 进度条:在主UI线程中创建子线程,用于处理耗时操作。然后子线程通过Handler机制把处理进度发送给主线程用于显示进度。 数据存储: 文件
21、流: SharePreference: SQLite3: 基本操作语句cmdadb shellcd /sdcardsqlite3 xxx/创建表create table stu(id integer primary key autoincrement, name char(10), age integer);/增insert into stu(name, age)values(小明, 20);/删delete from stu; /清空表delete from stu where id=1;delete from stu where name=ss3 or id=23;delete from
22、stu where name=ss3 and id=23;/修改update stu set name=xiaoWang, age=100 where _id11 and _id13; 相关类SQliteOpenHeader 传感器: Activity的生命周期:回调函数调用时间:OnCreate:界面创建时调用。OnStart:界面显示时调用。OnRestart:OnResume:界面可交互时调用。OnPause:界面失去交互时调用。OnStop:界面显示时调用。OnDestory:界面销毁时调用。 网络: 媒体: 安卓四大组件: Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 四大组建都需要在Mainfest中配置。 服务: 步骤: 新建服务类,继承Servi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理操作输血操作
- 工厂行为规范教育
- 2025届吉林省榆树一中高考全国统考预测密卷化学试卷含解析
- 四上数学6.3 认识亿以内的数、亿以内数的读写
- 历史-四川省九市(广安、广元、眉山、雅安、遂宁、内江、资阳、乐山、自贡)高2022级(2025届)第二次诊断 性考试(九市二诊)试题和答案
- 金相检验基础知识培训
- 电工电子技术 课件 9. 直流稳压电源的实现
- 第六章 职业生涯管理
- 跨境资产分割条款在2025离婚协议中的法律效力解析
- 新疆生产建设兵团第三师图木舒克市第一中学2024-2025学年高一下学期开学分班考试英语试卷(含答案无听力音频有听力原文)
- 2025年池州职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 2025年发展对象考试题库附含答案
- 房地产市场报告 -锐理2024年成都房地产市场年报 20250110
- 中国新闻社招聘考试试卷及答案2022
- 成都中考二诊数学试卷
- 创业思维-创造你喜爱的人生知到智慧树章节测试课后答案2024年秋浙江旅游职业学院
- 朱玉贤《现代分子生物学》(第5版)配套题库【考研真题+章节题库】
- 9《屈原列传》课件 2023-2024学年统编版高中语文选择性必修中册
- 《ISO 55013-2024 资产管理-数据资产管理指南》专业解读和应用指导材料(雷泽佳编制-2024C0)【第2部分:131-273】
- 《分解因式-十字相乘法》课件
- 京津冀地区农业减污降碳增效协同:时空演变及影响因素研究
评论
0/150
提交评论