您的位置:首页 > 其它

【安卓小笔记】Intent的用法

2016-05-14 23:43 302 查看
一、Intent可以从一个Activity跳转到下一个Activity

1.显示Intent:

添加第一个Activity的Button的点击事件

button1.setOnClickListener(new View.OnClickListener(){

public void onClick(View v){

Intent intent = new Intent( 第一个Activity.this,第二个ACtivity.class);

startActivity(intent);

}

};

2.隐式Intent:

在AndroidManifest.xml中添加第二个Activity的<intent-filter>的内容

<activity android:name = ".SecondActivity">

<intent-filter>

<action android:name = "字符串(一般以包名+action名)"/>

<category android:name = "android:intent.category.DEFAULT"/>

</intent-filter>

</activity>

添加第一个Activity的Button的点击事件

button1.setOnClickListener(new View.OnClickListener(){

public void onClick(View v){

Intent intent = new Intent(“添加在manifest的action的字符串”);

//也可以添加category.在manifest中也要添加一个<category>

//intent.addCategory(“字符串”);

startActivity(intent);

}

};

3.更多的intent的用法:

1)调用系统浏览器进入网页:

添加一个Activity的Button的点击事件

button1.setOnClickListener(new View.OnClickListener(){

public void onClick(View v){

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setData(Uri.parse("http://www.csdn,net"));

startActivity(intent);

}

};

2)进入拨号界面

添加一个Activity的Button的点击事件

button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
}
};

二、传递数据:
1.向下一个Activity传递数据:

添加第一个Activity的Button的点击事件:
button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
String data = "From FirstActivity"
Intent intent = new Intent( 第一个Activity.this,第二个ACtivity.class);
intent.putExtra("txt",data);
startActivity(intent);
}
};
在第二个Activity的onCreate方法中接受数据:
Intent intent = getIntent();
String data = intent.getStringExtra("txt");
Log.d("当前类名",data);

2.向上一个Activity传递数据:

添加第一个Activity的Button的点击事件:
button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent( 第一个Activity.this,第二个ACtivity.class);
//不能用startActivity(intent);
startActivityForResult(intent,1);
}
};
添加第二个Activity的Button的点击事件来返回数据:

button2.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent();
intent.putExtra("txt","From SecondActivity");
setResult(RESULT_OK,intent);
finish();
}
};
然后再第一个ACtivity中重写onACtivityResult方法:
protected void onACtivityResult(int requestCode,int resultCode,Intent data){//requestCode 为startActivityForResult(intent,1)中的1;
switch(requestCode){
case 1:
if(resultCode == RESULT_OK){
String returnedData = data.getStringExtra("txt");
Log.d("当前类名",returnedData);
}
break;
default:
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: