Android之Activity之间的参数传递

前面写了很多activity的东西,什么生命周期之类、常用控件以及这些控件怎么布局之类的,今天从另外一个角度在看activity:一个应用其实就是不同activity的切换,然后展示一些数据给用户,但是不同的activity之前肯定有着联系,那么他们之间怎么联系呢?说白了就是他们之间的参数是如何传递的呢?在讲不同的activity之间相互传参之前,我们先看这样两个问题:①:我们有时候需要从一个activity跳转到另一个activity,并且同时把参数带过去,然后一般就没有第一个activity啥事了,这个很常见所以就不举例子了,我们暂且称这一种为:普通的参数传递;②:有些时候呢,却不是这样,我们需要在第一个activity中打开第二个activity,在第二个activity中选取一个内容后,把我们选取的参数带回第一个activity,然后在第一个activity中处理带回来的参数,例如:我们在上传头像时,我们在第一个activity中,打开第二个activity,然后在第二个activity中,选取图片、裁剪图片,然后把处理好之后的图片带回到第一个activity,我们暂且称这种叫:关心结果的参数传递。 在明白有这两种需求之后,我们发现不同的activity之间参数传递其实很简单,不同的activity之间传递参数是依靠一个对象:android.content.Intent,只要有这个对象就可以满足我们在不同的activity之间传递参数的需求了。下面就让我们结合这两种情况,看看不同activity之间参数如何传递。 一、普通的参数传递 废话不多说,先看例子: 主activity的代码如下: package cn.bridgeli.demo; 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.EditText; import android.widget.TextView; public class MainActivity extends Activity { private EditText factorOne = null; private TextView symbol = null; private EditText factorTwo = null; private Button calc = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); factorOne = (EditText) findViewById(R.id.factorOne); symbol = (TextView) findViewById(R.id.symbol); symbol.setText("乘以"); factorTwo = (EditText) findViewById(R.id.factorTwo); calc = (Button) findViewById(R.id.calc); calc.setText("计算"); calc.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { String firstNum = factorOne.getText().toString(); String secondNum = factorTwo.getText().toString(); Intent intent = new Intent(); intent.setClass(MainActivity.this, ResultActivity.class); intent.putExtra("firstNum", firstNum); intent.putExtra("secondNum", secondNum); startActivity(intent); } }); } } 其对应的布局文件:activity_main.xml ...

February 1, 2015 · 3 min · 533 words · Bridge Li