安卓Activity基本用法总结

Intent跳转Activity方式

1.显式跳转以及传值

MainActivity关键代码

Intent startActIntent = new Intent(MainActivity.this, ThirdActivity.class);
startActIntent.putExtra("name", "peter");
startActIntent.putExtra("sex", "male");
startActivity(startActIntent);

ThirdActivity关键代码

    //接收从FirstActicity传入的参数
    Intent valueIntent = getIntent();
    showText.setText(valueIntent.getStringExtra("name")+","+valueIntent.getStringExtra("sex"));

2.隐式跳转

MainActivity关键代码

//此处设置的值为在AndroidManifest.xml中设置的SecondActivity的intent-filter中设置的action属性
Intent intent = new Intent("com.xt.firstapp.TEST_INTENT");
//如若不指定该category,则系统默认添加android.intent.category.DEFAULT
intent.addCategory("android.intent.category.DEFAULT");
startActivity(intent);

AndroidManifest关键代码

<activity android:name=".activity.SecondActivity">
        <intent-filter>
            <action android:name="com.xt.firstapp.TEST_INTENT" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
 </activity>

3.返回上一个Activity传递参数

MainActivity关键代码

  Intent resultIntent = new Intent(MainActivity.this, SecondActivity.class);
  //requestcode设置为1
  startActivityForResult(resultIntent, 1);

 //如果要从上一个返回activity取得数据,则需要覆写该方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
        case 1:
            if (RESULT_OK == resultCode) {
                Log.d("back_data-----", data.getStringExtra("back_data"));
                Toast.makeText(MainActivity.this, data.getStringExtra("back_data"), Toast.LENGTH_LONG).show();
            }
    }
}

SecondActivity关键代码

Intent backIntent=new Intent();
backIntent.putExtra("back_data", "this is back data from second activity");
setResult(RESULT_OK, backIntent);
finish();

4.Intent除了跳转之外另外的用法

//Intent打开浏览器
Intent viewIntent = new Intent(Intent.ACTION_VIEW);
viewIntent.setData(Uri.parse("https://www.baidu.com"));
startActivity(viewIntent);

//Intent拨打电话
Intent dialIntent = new Intent(Intent.ACTION_DIAL);
dialIntent.setData(Uri.parse("tel:10086"));
startActivity(dialIntent);

Comments !