本文实现一个简易的人品计算器来实践在不同Actitity之间数据传递
intent的数据传递
从A界面打开B界面 把A界面的数据传递给B界面
1. intent.setData(uri) -- intent.getData();
可以传递简单的文本数据。
2. intent.putExtra(name, value)
8大基本类型的数据,数组都可以传递
String对象 可以传递 charSequence可以序列化的对象(序列化到文件) Serializable 也可以传递可以序列化的对象(序列化到内存) Parcelable 也可以传递 bitmap可以传递 一个map集合 Bundle extras = new Bundle();本文地址:,转载请注明源地址。
新建项目,MainActivity中的代码如下:
package com.wuyudong.testrp;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.text.TextUtils;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity { private EditText et_name; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_name = (EditText)findViewById(R.id.et_name); } public void click(View view) { String name = et_name.getText().toString().trim(); if (TextUtils.isEmpty(name)) { Toast.makeText(this, "名字不能为空", 1).show(); return; } Intent intent = new Intent(this, ResultActivity.class); intent.putExtra("name", name); startActivity(intent); }}
activity_main.xml中的代码如下:
界面如下:
输入姓名后,点击按钮跳转到另一个结果界面:activity_result.xml
界面如下:
ResultActivity.java代码如下:
package com.wuyudong.testrp;import java.util.Random;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.ProgressBar;import android.widget.TextView;public class ResultActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_result); TextView tv_result = (TextView) findViewById(R.id.tv_result); Intent intent = getIntent(); String name = intent.getStringExtra("name"); Random rm = new Random(); int rp = rm.nextInt(101); tv_result.setText(name + ":您的人品值为:" + rp); ProgressBar pb = (ProgressBar)findViewById(R.id.progressBar1); pb.setProgress(rp); }}