|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 青玄 于 2014-11-4 21:12 编辑
activity之间的跳转与传值:
要想实现跳转与传值的话,我们首先要在清单配置文件中,写好连个activity,然后,在activity程序中进行编写跳转与传值的代码:
首先在MainActivity中用到的跳转方法是startActivity(Intent intent)方法,但是这个方法只能够将值传过去,而不能将值返回回来!而startActivityForResult(Intent intent, int requestCode)这个方法可以返回来数据!
1.startActivity(Intent intent)
参数说明:Intent 这个参数有一个方法intent.putExtra(String name, Serializable serializable)其中serializable是一个序列化的一个对象,这个对象里面有你要传递的参数,而name就是这个序列化对象的名字,这个得话可以随便取!但是要注意的是:在跳转到的那个页面接收这个对象的时候,名字必须与它一致!
2.startActivity(Intent intent)
参数说明:这个参数在传递参数的时候,是这样的它连续用intent.putExtra("name","小白马");这个方法,去将参数设置到intent对象中去
然后再次将intent以参数的形式给startActivity这个方法!
还有一种设置的方法就是:用Bundle这个类,这个类是用来存储传递的数据的其用法是:
Bundle bundle = new Bundle();
bundle.putString("name","小白马");
intent.putExtras(bundle);
***************************************************************************************************************************
到要跳转的activity的时候可以用本类的getIntent这个方法来接收一个Intent对象:然后用intent.getSerializableExtra("student");获得传递过来的对象;
在这个activity中,若想传递数据给第一个activity的时候要用到setResult(1,intent);
- public void close(View v)
- {
- Intent intent = new Intent();
- intent.putExtra("result", "小白马这里");
- setResult(1,intent);
- finish();
- }
复制代码
然后在第一个activity里面去覆写protected void onActivityResult(int requestCode, int resultCode, Intent data)这个方法!然后:
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) //这里是用来接收返回来的数据
- {
- // TODO Auto-generated method stub
- super.onActivityResult(requestCode, resultCode, data);
- String result = data.getStringExtra("result");
- Toast.makeText(this, result, Toast.LENGTH_LONG).show();
- }
复制代码 值得注意的是如果用intent与bundle进行设置传递的数据的时候,那么在接收的时候,是这样的:
- 这里的话也可以用intent去获取数据:String name = intent.getStringExtra("name");
- int age = intent.getintExtra("age", 0);
- float salary = intent.getFloatExtra("salary", 0);
- 还可以用这个进行传值:
- Bundle bundle = intent.getExtras();
- String name = bundle.getString("name");
- int age = bundle.getInt("age", 0);
- float salary =budle.getFloat("salary", 0);
- result.setText("姓名:" + name + "\年龄" + age +
- * "\n工资" + salary);
复制代码 *************************************************************************************************************************************************************************************意图-->Intent的使用******************************************
在android中,activity之间跳转的时候,总是要用到Intent这个类!其实就是意图类,恩~~在android中,意图分两种:
显示意图与隐式意图,显示意图就是跳转的activity类在Intent实例化的时候,是可以看到的!例如
Intent intent = new Intent(this.SecondActivity.class);
startActivity(intent);
而隐式意图则是看不见的!其实需要在清单配置文件里面去配置:
- <activity
- android:name="com.example.intent_test.SecondActivity"
- android:label="意图过滤"
- >
- <intent-filter>
- <action android:name="cn.cbd.aaa" />
- <category android:name="android.intent.category.XXX"/>
- <category android:name="android.intent.category.ZZZ"/>
- <category android:name="android.intent.category.DEFAULT"/>
- <data android:scheme="cbd" android:mimeType="image/*"/>
- </intent-filter>
- </activity>
复制代码 然后只需要在activity程序中这样就行了:
- Intent intent = new Intent();
- //只有当一下两个参数匹配成功后才能执行跳转
- intent.setAction(Intent.ACTION_VIEW); //这里是匹配清单文件中的action
- intent.setData(Uri.parse("http://www.baidu.com")); //这里是设置匹配数据的Uri
- startActivity(intent);
复制代码
|
评分
-
查看全部评分
|