Android系列之Activity的传值和回传值

Android系列之Activity的传值和回传值

Android 组件系列之Activity的传值和回传值

在这篇随笔里将讲解Activity的传值和回传值。

一、通过startActivity来进行Activity的传值

在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent intent)方法来传入一个Intent对象,这个Intent对象我们可以精确的指定我们需要跳转的Activity上,或者通过Intent对象来 指定我们要完成的一个action操作。

①.通过setClass方法来指定我们要跳转的Activity

Intent intent = new Intent();

intent.setClass(MainActivity.this, SecondActivity.class);

②.通过setAction方法来我们要完成的一个action操作

Intent intent = new Intent();

intent.setAction(“com.xiaoluo.android_intent.second”);

通过这种方式可以来指定我们的Intent对象要完成某个操作,这个操作可以是启动一个Activity,我们可以在 AndroidManifest.xml中在 元素下指定一个 对象,然后其子元素声明一个 元素,这样我们可以将这个action动作绑定到了这个Activity上,即Android操作系统会去找与intent对象中指定的action名字 的 对象,然后执行相应的动作,例如:

<activity

        android:name="com.xiaoluo.android_intent.SecondActivity"

        android:label="SecondActivity">

        <intent-filter>

            <action android:name="com.xiaoluo.android_intent.second"/>

            <category android:name="android.intent.category.DEFAULT"/>

        </intent-filter>

    </activity>

这样我们的Intent对象,在启动时,就会找到名字为 com.xiaoluo.android_intent.second 的对象,来启动我们的SecondActivity。

我们来看看如何在Activity对象中进行值的传递,也是通过 Intent 对象的各种putExtra方法来进行传递:

MainActivity:

public class MainActivity extends Activity

{

private Button button;



@Override

protected void onCreate(Bundle savedInstanceState)

{
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

   

    button = (Button)findViewById(R.id.button);

    button.setOnClickListener(new ButtonListener());

}



class ButtonListener implements OnClickListener

{
    @Override

    public void onClick(View v)

    {

// Intent intent = new Intent();

// intent.setClass(MainActivity.this, SecondActivity.class);

        Intent  intent = new Intent();

        intent.setAction("com.xiaoluo.android_intent.second");

       

        intent.putExtra("com.xiaoluo.android_intent.age", 20); // 第一个参数指定name,android规范是以包名+变量名来命名,后面是各种类型的数据类型

        intent.putExtra("com.xiaoluo.android_intent.name", "xiaoluo");

       

        Bundle bundle = new Bundle();  //  Bundle的底层是一个HashMap<String, Object

        bundle.putString("hello", "world");

        intent.putExtra("bundle", bundle);

       

        startActivity(intent);

    }

}



@Override

public boolean onCreateOptionsMenu(Menu menu)

{
    // Inflate the menu; this adds items to the action bar if it is present.

    getMenuInflater().inflate(R.menu.main, menu);

    return true;

}

}

SecondActivity:

public class SecondActivity extends Activity

{

private TextView textView;

private final String TAG = "S
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值