一、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.youkuaiyun.com"));
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:
}
}