Android 之 activity

版权声明:转发请标明原著 https://blog.csdn.net/weixin_39460667/article/details/82464634

打开标准活动,比如打开拨号界面

Intent i = new Intent(Intent.ACTION_DIAL);
startActivity(i);

常见的其他标准活动如下,在执行相应的操作时,记得要添加权限

ACTION_MAIN APP的入口
ACTION_VIEW 用于显示用户的数据。比较通用,会根据用户的数据类型打开相应的Activity。比如`Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(“http://www.google.com”));`这样就会打开浏览器
ACTION_GET_CONTACT 允许用户选择特殊种类的数据,并返回(特殊种类的数据:照一张相片或录一段音)
ACTION_CALL 呼叫指定的电话号码
ACTION_DIAL 调用拨号面板
ACTION_SEND 实现分享功能
ACTION_SENDTO 发送一条消息给由数据指定的人
ACTION_ANSWER 处理呼入的电话
ACTION_ATTACH——DATA 别用于指定一些数据应该附属于一些其他的地方,例如,图片数据应该附属于联系人
ACTION_CHOOSER 显示一个activity选择器

 

返回数据给上一个活动

首先在MainActivity用startActivityForResult() 方法打开SecondActivity

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivityForResult(intent,1);

然后在SecondActivity设置一些数据准备传给MainActivity,setResult接收两个参数,第一个用于向上一个活动返回处理结果,一般使用RESULT_OKRESULT_CANCELED,第二个参数就是要传递的数据。

Intent intent = new Intent();
intent.putExtra("data_return","给MainActivity的数据");
setResult(RESULT_OK,intent);

因为我们是使用startActivityForResult()方法启动的SecondActivity,所以当SecondActivity销毁时会回调上一个活动的onActivityResult()方法,因此我们需要在MainActivity中重写onActivityResult()方法

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    switch (requestCode){
        case 1:
            if(resultCode==RESULT_OK){
                //这里就拿到了数据
                String returnedData=data.getStringExtra("data_return");
            }
            break;
        default:
    }
}

( 注意:如果我们是通过按钮返回不能使用 startActivity() 方法,回调方法不会接收到我们的返回数据 )

如果用户不是通过按钮返回的上一个活动,而是通过Back键进行返回的,那么可以重写onBackPressed()方法。

@Override
public void onBackPressed() {
    Intent intent = new Intent();
    intent.putExtra("data_return","给MainActivity的数据");
    setResult(RESULT_OK,intent);     
    finish();
}

thanks

猜你喜欢

转载自blog.csdn.net/weixin_39460667/article/details/82464634
今日推荐