现在的位置: 首页 > 综合 > 正文

Intent初步学习

2014年01月20日 ⁄ 综合 ⁄ 共 2717字 ⁄ 字号 评论关闭
Intent:一个intent就是一次对将要执行的操作的抽象描述。

一、Intent拨号
1、用intent调用系统拨号程序:

Intent intent = new Intent();

intent.setAction(Intent.ACTION_CALL);//设置拨号动作

intent.setData(Uri.parse("tel:110"));//设置号码

startActivity(intent);//开始拨号

2、需要在AndroidManifest.xml文件中设置拨号权限:

<manifest xmlns:android=”http://schemas.android.com/apk/res/android

Package=”com.example.edittext”

Android:versionCode=”1”

Android:versionName=”1.0”>

  <uses-permission android:name="android.permission.CALL_PHONE"/>

</manifest>

二、Intent发短信
1、用intent调用系统拨号程序:

Intent intent = new Intent();

intent.setAction(Intent.ACTION_CALL);//设置发短信动作

intent.setData(Uri.parse("tel:110"));//设置号码

intent.putExtra("sms_body", "Welcome to China!");//设置短信内容

startActivity(intent);//开始进入发短信界面

 

2、需要在AndroidManifest.xml文件中设置发短信的权限:

<uses-permission android:name="android.permission.SEND_SMS"/>

  <uses-permission android:name="android.permission.CALL_PHONE"/>

</manifest>

三、Intent启动另一个Activity 

1、在主activity中设置下一个activity

  Intent intent = new Intent();

  // SecondActivity.class是启动的另一个activity

  intent.setClass(MainActivity.this, SecondActivity.class);

  intent.putExtra("str", "this isintent...");//activity之间传参

  startActivity(intent);//启动另一个Activity


2、注册Activity,每个Activity必须要在androidManifest.xml文件中注册

  <activity

            android:name="com.example.edittext.SecondActivity"

            android:label="SecondActivity“/>

3、被启动的activity

  public class SecondActivity extends Activity {

  protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.second);

  Intent intent = this.getIntent();//getIntent方法可以得到传递过来的Intent

  Bundle bun = intent.getExtras();//getExtras方法可以获得intent中的键值对

  String str = (String)bun.getString("str");//接收到的参数

  }

  }

4、finish():结束当前activity,返回到调用它的activity中。

四、Intent接收Activity返回的结果
a) MainActivity中:

private final static int REQUEST_CODE=1;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Intentintent = new Intent();

intent.setClass(MainActivity.this, SecondActivity.class);

intent.putExtra("str","this is intent...");

startActivityForResult(intent,REQUEST_CODE);//启动另一个activity

}

//重写onActivityResult方法接收上面启动的那个activity的返回值

protected void onActivityResult(int requestCode, int resultCode,Intent data) {

super.onActivityResult(requestCode, resultCode,data);

if(requestCode ==REQUEST_CODE){

if(resultCode == SecondActivity.RESULT_CODE){

Bundlebundle = data.getExtras();

Stringstr = bundle.getString("secdata");

Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show();

}

}

}

b) SecondActivity中:

public final static int RESULT_CODE = 1;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.second);

Intentinte t= new Intent();

Intet.putExtra("secdata","sec intent");//设置参数

setResult(RESULT_CODE,intet);//设置返回结果

finish();//结束当前activity

}

抱歉!评论已关闭.