您的位置:首页 > 移动开发 > Android开发

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()来建立

上一个活动:

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(),以及上述两种函数联系起来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: