23.Intent传值,Bundle包传值

package com.example.p85;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;

public class MainActivity extends Activity {

    //选择的代表版本的radiobutton
    private RadioButton rb_1,rb_2,rb_3;
    private Button bt_submit;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lin);

        //找到关心的控件
        bt_submit = (Button)findViewById(R.id.bt_submit);
        rb_1 = (RadioButton)findViewById(R.id.rb1);
        rb_2 = (RadioButton)findViewById(R.id.rb2);
        rb_3 = (RadioButton)findViewById(R.id.rb3);

        bt_submit.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub

    //?????????这里的占位代表了什么
                Intent ii = new Intent(MainActivity.this,second.class);

                Bundle myBundle = new Bundle();

                //判断选中哪一个,判断完成使用intent传输数据到第二个
                if(rb_1.isChecked()){
                //ii.putExtra("data", (String)rb_1.getText().toString());
                myBundle.putString("data", (String)rb_1.getText().toString());

                }else if (rb_2.isChecked()) {
                //ii.putExtra("data", (String)rb_2.getText().toString());
                myBundle.putString("data", (String)rb_2.getText().toString());
                }else if (rb_3.isChecked()) {
                //ii.putExtra("data", (String)rb_3.getText().toString());
                myBundle.putString("data", (String)rb_3.getText().toString());
                }else {
                //ii.putExtra("data", "null");
                }

                ii.putExtras(myBundle);

                startActivity(ii);
            }
        });
    }

}
package com.example.p85;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.IInterface;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class second extends Activity{

    private TextView tv;
    private Button bt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lin2);

        bt = (Button)findViewById(R.id.bu_back);
        tv = (TextView)findViewById(R.id.tv_receive);

        //接受在第一个activity中发送来了意图
        Intent my = this.getIntent();

        //获得意图中带有的bundle包
        Bundle mmBundle = my.getExtras();

        //使用bundle包拿到的数据
        String ss1 = mmBundle.getString("data");

        //使用意图拿到的数据
        String ss = my.getStringExtra("data");

        if("".equals(ss1)){
            tv.setText("没有内容");
        }else {
            tv.setText(ss1+"被选中了");
        }

        bt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub

                //跳转回去可以通过finish掉当前的activity
                finish();

            }
        });
    }

}

原文地址:https://www.cnblogs.com/gzyx/p/12089252.html

时间: 2024-11-14 09:30:17

23.Intent传值,Bundle包传值的相关文章

Activity间用Intent、Bundle、onActivityResult进行传值

其实Activity间的传值就是通过Bundle,intent中也是自动生成了Bundle来传值,里面还有个onActivityResult()方法也可以传送数值. 如果一个Activity是由startActivityForResult启动的,那么这个activity在finish()后就会回调启动它的activity中的onActivityResult()方法. 下面是全部代码: MainActivity.java package com.kale.activity; import andr

Intent跳转与传值总结

/*---------------------------------------- *-描述--Intent跳转与传值总结. *-描述--S1.Intent描述 * Intent的分类 * 1.显式意图 通常是指intent启动目标组件时明确指定了组件的名称的情况 * 一般是用在启动同一个应用程序中的组件 * 2.隐式意图 通常是指intent启动目标组件时没有明确指定了组件的名称的情况 * 只是指定了启动组件的特征,一般情况下是用在启动不同应用中的组件 * * 如果目标组件没有指定inten

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

在这篇随笔里将讲解Activity的传值和回传值. 一.通过startActivity来进行Activity的传值 在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent intent)方法来传入一个Intent对象,这个Intent对象我们可以精确的指定我们需要跳转的Activity上,或者通过Intent对象来指定我们要完成的一个action操作. ①.通过setClass方法来指定我们要跳转的Activity

iOS中多视图的传值 属性传值和代理传值

首先创建两个类 ,FirstViewController和SecondViewController,都继承于UIViewController 1 #import "AppDelegate.h" 2 #import "FirstViewController.h" 3 4 @interface AppDelegate () 5 6 @end 7 8 @implementation AppDelegate 9 10 11 - (BOOL)application:(UIAp

IOS笔记047-代理传值和block传值

在两个不同的控制器之间传递数据,可以使用代理传值或者block传值. 例子是一个简单通讯录. 主界面如下: 添加联系人界面 查看/编辑联系人界面:默认是查看模式,点击编辑后进入编辑模式 编辑模式 数据更新成功. 其中添加联系人界面的数据传递使用代理方式实现. 编辑联系人界面的数据传递使用block实现. 下面来看具体过程 1.整个界面搭建 在storyboard里拖拽四个控制器,其中联系人界面是一个UITableView.界面之间的跳转使用代码实现,但是要给每一个控制器指定一个标识.按功能分别指

属性传值和协议传值  

属性传值三部..... 1.在第二个页面.h中,定义name //属性传值............1 @property (nonatomic, copy)NSString *name; 2.在第一页.m中然后在推出第二个页面前,把第一个按钮的title值传给第二个页面定义的name SecondViewController *secondVC = [[SecondViewController alloc] init]; //属性传值..............2 secondVC.name =

M牛C原创博客——MVC 模式中正向传值、反向传值

多vc之间的传值 1)正向传值 当AVC推出BVC时,a给b传值叫做正向传值 2)正向传值实现步骤 step1:bvc要提供一个公开的属性 //公开一个属性,用于接收其他类出入的字符串 @property(nonatomic,copy)NSString *message; step2:avc在推出bcc之前,为bvc公开的属性赋值 //1.创建要推出的bvc的实例 BViewController *bvc = [[BViewController alloc]initWithNibName:@"B

iOS 页面间传值 之 属性传值,代理传值

手机 APP 运行,不同页面间传值是必不可少,传值的方式有很多(方法传值,属性传值,代理传值,单例传值) ,这里主要总结下属性传值和代理传值. 属性传值:属性传值是最简单,也是最常见的一种传值方式,但其具有局限性(一般用于将第一个页面的值传递到第二个页面,但无法从第二个页面传到第一个页面), 向SecondViewController传值:SecondViewController 设置属性 sendMessage 1 - (void)rightButtonAction:(UIBarButtonI

属性传值,协议传值,block传值,单例传值四种界面传值方式

一.属性传值 对于属性传值而言,相对于其它的三种 方法来说,是最基础,最简单的一种 方法,但,属性传值 有很大的局限性,因为是适用于第一个界面向第二个界面传 值,第二个向第三个界面传值等等.N界面向N + 1界面传值.而在此基础上,必须知道跳转界面的明确位置及所要传的值的具体类型.在第二个界面中声明所要传值 类型的属性. @interface SecondViewController : UIViewController //声明一个字符串属性来保存第一个界面传过来的字符串内容 @propert