马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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);
|