Android学习小结2
2016-01-18 22:25
567 查看
想要调用一个活动有三样东西绝对不能少:
在AndroidMainifest中注册
在布局中,布置好id,以及其他属性
在.java中写下
Intent intent = new intent(“在注册好的action的名称”/intent.XX);
可以加上addcategory,控制多个目录
startActivity()来启动intent
隐式启动Activity的intent到底发给哪个activity,需要进行三个匹配,一个是action,一个是category,一个是data,可以是全部或部分匹配
显示启动:
Intent intent = new Intent(first.this,second.class);
startActivity(intent);
规律,个人认为,四大组件无论哪个既然都需要在注册,那么一定会在.Java中使用相同的名称或者ID去匹配
除了加上action 和category之外还能加上
Data:android:scheme 用于数据的协议部分(http)
Android:host 用于指定主机名(www.baidu.com)
Android:port 用于端口,一般随主机名后
Android:path 用于主机与端口之后,如一段网址中跟在域名之后的内容
Intent.ACTION_xx 系列全是Android内部的内置动作
但是部分动作需要本身就需要有的软件,不然无法获取,比如geo获取地理位置,需要百度地图软件
传递数据到下一个活动
上一个活动需要putextra()
下一个活动则getintent().getStringExtra()
传递到上一个活动
同一个思路,申请一个intent putextra传,getStringExtra接受。Intent声明一个data用来储存
第一个活动需要用startActivityForresult()来建立
上一个活动:
第二个活动
总结:
想要调用控件,必须在R.java里面有ID,要声明并联系ID
所谓的intent就是目的过滤器,
目的是什么,将两者通过或者默认名(注册时,要调用Android.xx)联系,和来声明多一个活动
而传递信息,顺着传递,需要putExtra(),第二活动需要getStringExtra()来获取
数据存在intent中
返回数据,则是调用setActivityForResult(),以及上述两种函数联系起来
在AndroidMainifest中注册
在布局中,布置好id,以及其他属性
在.java中写下
Intent intent = new intent(“在注册好的action的名称”/intent.XX);
可以加上addcategory,控制多个目录
startActivity()来启动intent
隐式启动Activity的intent到底发给哪个activity,需要进行三个匹配,一个是action,一个是category,一个是data,可以是全部或部分匹配
显示启动:
Intent intent = new Intent(first.this,second.class);
startActivity(intent);
规律,个人认为,四大组件无论哪个既然都需要在注册,那么一定会在.Java中使用相同的名称或者ID去匹配
除了加上action 和category之外还能加上
Data:android:scheme 用于数据的协议部分(http)
Android:host 用于指定主机名(www.baidu.com)
Android:port 用于端口,一般随主机名后
Android:path 用于主机与端口之后,如一段网址中跟在域名之后的内容
Intent.ACTION_xx 系列全是Android内部的内置动作
但是部分动作需要本身就需要有的软件,不然无法获取,比如geo获取地理位置,需要百度地图软件
传递数据到下一个活动
上一个活动需要putextra()
下一个活动则getintent().getStringExtra()
传递到上一个活动
同一个思路,申请一个intent putextra传,getStringExtra接受。Intent声明一个data用来储存
第一个活动需要用startActivityForresult()来建立
上一个活动:
button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(first.this, "You clicked Button 1", Toast.LENGTH_SHORT).show(); //String data = "Hello SecondActivity"; Intent intent = new Intent(first.this,second.class); //intent.putExtra("extra_data", data); startActivityForResult(intent, 1); // TODO Auto-generated method stub } }); protected void onActivityResult(int requestCode,int resultCode, Intent data){ switch(requestCode) { case 1: if(resultCode == RESULT_OK) { String returnedData = data.getStringExtra("data_return"); Log.v("First",returnedData); } break; default: }
第二个活动
Button button2 = (Button) findViewById(R.id.button_2); button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.putExtra("data_return", "Hello first"); setResult(RESULT_OK,intent); finish(); // TODO Auto-generated method stub } });
总结:
想要调用控件,必须在R.java里面有ID,要声明并联系ID
所谓的intent就是目的过滤器,
目的是什么,将两者通过或者默认名(注册时,要调用Android.xx)联系,和来声明多一个活动
而传递信息,顺着传递,需要putExtra(),第二活动需要getStringExtra()来获取
数据存在intent中
返回数据,则是调用setActivityForResult(),以及上述两种函数联系起来
相关文章推荐
- 读书笔记1.Android启动模式
- Android笔记--对JavaBean的理解和AlerDialog的使用。
- android 学习入门小结1
- Android 错误:IllegalStateException: Can not perform this action after onSaveInstanceState
- Android 错误:IllegalStateException: Can not perform this action after onSaveInstanceState
- androidStudio集成讲解
- Android:Moring-早安闹钟开发过程记录(一)
- Android自定义标题栏后,刚进入应用会出现黑色的标题背景栏的解决方案
- 从菜鸟到Android资深工程师的进阶之路
- android 中listview之BaseAdapter的使用
- android ImageView实现变暗效果
- android143 360 短信电话拦截
- Android快速开发系列 10个常用工具类
- Android学习(一)TextView,ImageView,Button,EditText,控件
- 【android基础二】android重要控件——你有多熟悉listview?
- 利用ViewGroup实现引导界面
- Android中JNI 的一些常用说明 JNI_OnLoad registerNatives registerNativeMethods
- 【android基础一】Android四大基本组件介绍与生命周期
- Android从零单排之5种toast详解
- ActiveAndroid数据库table的基本数据库操作