Intent数据传递

Intent提供了一系列重载的putExtra(String name,String value)方法,通过该方法将要传递的数据暂存在Intent中,启动另一个Activity之后,只需将这些数据从Intent取出即可,Intent充当着一个“信鸽”的身份。

下面以一个注册用户信息的实例,进行详细讲解。

首先,需要两个Activity,注册界面MainActivity(左)与展示界面ShowActivity(右)(因为它不是重点,所以略丑…嘿嘿,界面代码也就不贴出来了)

图丢啦     图丢啦

下面分别是两个Activity实现数据传输和数据获取的代码,都有详细的注释。

//MainActivity.java

package com.example.lenovo.exampleoftextbook;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {
    private EditText editText1;
    private EditText editText2;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText1 = findViewById(R.id.editText1);
        editText2 = findViewById(R.id.editText2);
        button = (Button) findViewById(R.id.button);//18-21行完成与布局文件的连接
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                passDate();
            }
        });
    }//onCreate函数
    //传递数据
    private void passDate() {
        //创建Intent对象
        Intent intent = new Intent(this,ShowActivity.class);
        //将数据存入Intent对象
        intent.putExtra("name",editText1.getText().toString().trim());
        intent.putExtra("password",editText2.getText().toString().trim());
        startActivity(intent);
    }
}
//ShowActivity.java

package com.example.lenovo.exampleoftextbook;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class ShowActivity extends AppCompatActivity {
    private TextView textView;
    private TextView textView3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show);
        Intent intent = getIntent();
        //取出key对应的value值,这里的key相当于数据库中的主键
        String name = intent.getStringExtra("name");
        String password = intent.getStringExtra("password");
        textView = (TextView)findViewById(R.id.textView);
        textView3 = (TextView)findViewById(R.id.textView3);
        textView.setText("用户名:"+ name);
        textView3.setText("密码:"+ password);
    }
}

运行结果就是刚开始展示的界面了,需要注意的是,getStringExtra()方法传入的参数必须与MainActivity中intent.putExtra()方法中传入的key值相同,否则就会返回NULL。而且这里传递的是字符串类型的数据,如果说传递的是整数类型的,就使用getIntExtra()方法,其他同理。

以上。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值