Android中利用Intent和Bundle传值总结

     Android中的Intent机制可以实现组件间的交互,通讯,调用。可以是应用程序之间,也可以是应用程序内部Activity与Service的交互或是发送/接受广播等。当然,这些内容在这篇博客都不会谈到。这篇博客只是对Android中利用Intent和Bundle传值的总结。
    一、startActivity() + Intent传值

    在MainActivity.java的布局文件中添加一个按钮:

<Button
        android:id="@+id/id_intent_btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Intent 传值"
        />
   在MainActivity.java的onCreate()方法中:

 Button btn = (Button) findViewById(R.id.id_intent_btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setClass(MainActivity.this,SecondActivity.class);
                intent.putExtra("gender",1);
                intent.putExtra("name","liying");
                startActivity(intent);
            }
        });
 

至此就实现了把name和gender发送到SecondActivity.接下来就是在SecondActivity.class中取出值。

在SecondActivity.java 的onCreate()方法中:

public class SecondActivity extends AppCompatActivity {

    private static final String TAG = "SecondActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        String gender_str = "";
        String name = getIntent().getStringExtra("name");
        int gender = getIntent().getIntExtra("gender",0);
        if (0==gender){
            gender_str = "男";
        }
        if (1==gender){
            gender_str = "女";
        }
        Log.e(TAG, "onCreate: 从MainActivity中传过来的name="+name+" , gender="+gender_str );
    }
}


运行项目,打印出log信息:


这样我们就通过startActivity() + intent的方式实现了传值。进入到Intent的源代码可以看到,intent传值可以传递各种不同的数据类型。

Intent putExtra(String name, int[] value)  
Intent putExtra(String name, float value)  
Intent putExtra(String name, byte[] value)  
Intent putExtra(String name, long[] value)  
Intent putExtra(String name, float[] value)  
Intent putExtra(String name, long value)  
Intent putExtra(String name, String[] value)  
Intent putExtra(String name, boolean value)  
Intent putExtra(String name, boolean[] value)  
Intent putExtra(String name, short v
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值