鱼C论坛

 找回密码
 立即注册
查看: 1657|回复: 0

[原创]安卓四大组件之activity

[复制链接]
发表于 2014-11-4 15:11:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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);
QQ截图20141104211040.png






评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
拈花小仙 + 5 + 5 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 16:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表