android跳转到另一个Activity三种方法 |
您所在的位置:网站首页 › 安卓开发button触发页面跳转 › android跳转到另一个Activity三种方法 |
记性不好的妹纸萌,只能靠学习记录整理了。 一个Intent对象,用于携带将跳转至下一个界面中使用的数据,使用putExtra(key,values)方法,此处存储的数据类型特别多,常用类型都支持。 方法一、 显式启动 Intent内部直接声明要启动的activity所对应的class。
Intent intent=new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); 或 SecondActivity.start(MainActivity.this, url); 或者在SecondActivity.class里创建static方法 public static void start(Context context, String url) { start(context, url,“no”); } public static void start(Context context, String url, String isMy) { Intent starter = new Intent(context, WebActivity.class); starter.putExtra("URL", url); starter.putExtra(“ISMY”, isMy); context.startActivity(starter); }方法二、 隐式启动 进行三个匹配,一个是action, 一个是category,一个是data,全部或部分匹配,应用于广播原理BroadcastReceiver。
在AndroidManifest.xml文件里配置Activity的属性 action的名字要和Intent跳转内容一样 例如:
在需要用跳转的地方(使用与Adapter等不能直接显示跳转的地方) Intent intent=new Intent("com.example.android.tst.SecondActivity"); startActivity(intent);
方法三、 跳转后,当返回时能返回数据 在MainActivity.java里面 Intent intent = new Intent(MainActivity.this, OtherActivity.class); intent.putExtra("a", a); intent.putExtra("b", b); // startActivity(intent);并不能返回结果 startActivityForResult(intent, REQUESTCODE); //REQUESTCODE--->1 // 获取结果 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // RESULT_OK,判断另外一个activity已经结束数据输入功能,Standard activity result: // operation succeeded. 默认值是-1 if (resultCode == 2) { if (requestCode == REQUESTCODE) { int three = data.getIntExtra("c", 0); //设置结果显示框的显示数值 result.setText(String.valueOf(three)); } } }
在OtherActivity.java里面 此处并不是创建而是直接获取一个intent对象Return the intent that started this activity. Intent intent = getIntent(); int a = intent.getIntExtra("a", 0); // 没有输入值默认为0 int b = intent.getIntExtra("b", 0); // 没有输入值默认为0 int c=a+b; 处理完获取数据后,在结束本Activity的时候回传数据 Intent intent = new Intent(); intent.putExtra("c", c); //将计算的值回传回去 //通过intent对象返回结果,必须要调用一个setResult方法, //setResult(resultCode, data);第一个参数表示结果返回码,一般只要大于1就可以 setResult(2, intent); |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |