1、Activity传递数据,并显示Activity上。
2、Android用Intent来做activity的跳转,轻量级的数据用Bundle 配合着传递。
传回数据用startActivityForResult来搞。
main类代码如下:
- package com.smart.intent;
- import java.io.Serializable;
- 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.Toast;
- class Data implements Serializable
- {
- public String name = "老梁";
- public int[] values = new int[]
- { 1, 3, 5, 9, 0,9,2,3,7,8 };
- }
- public class Main extends Activity implements OnClickListener{
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Button btnStart=(Button)findViewById(R.id.btnStartActivity);
- Button btnReturn=(Button)findViewById(R.id.btnReturn);
- btnStart.setOnClickListener(this);//绑定器
- btnReturn.setOnClickListener(this);
- }
- @Override//判断按是哪一个按键。
- public void onClick(View v) {
- switch(v.getId()){
- case R.id.btnStartActivity:
- Data data=new Data();
- Intent intent=new Intent(this,SmartBrowser.class);
- intent.putExtra("name", "Smart");
- intent.putExtra("age", 988);
- intent.putExtra("data", data);
- startActivity(intent);
- break;
- case R.id.btnReturn:
- Intent proIntent=new Intent(this,SmartProcess.class);
- startActivityForResult(proIntent, R.layout.process);
- break;
- }
- }
- @Override//判断数据接收时的确定与取消。
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- switch(requestCode){
- case R.layout.process:
- if(resultCode==20){
- Toast toast=Toast.makeText(this, data.getStringExtra("text"), Toast.LENGTH_LONG);
- toast.show();
- }else if(resultCode==21){
- Toast toast=Toast.makeText(this, "你取消了操作", Toast.LENGTH_LONG);
- toast.show();
- }
- break;
- default:
- break;
- }
- //反回码与请求码一样。
- super.onActivityResult(requestCode, resultCode, data);
- }
- }
数据显示代码:
- package com.smart.intent;
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.TextView;
- public class SmartBrowser extends Activity{
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.browser);
- TextView textView=(TextView)findViewById(R.id.textview);
- Bundle bundle=getIntent().getExtras();//得到数据。
- String s="";
- s+="name:"+bundle.getString("name")+"\n";
- s+="name:"+bundle.getInt("age")+"\n";
- Data data=(Data)bundle.getSerializable("data");
- s+="Data.name:"+data.name+"\n";//进行接收数据。
- String values="";
- for (int i = 0; i < data.values.length; i++) {
- values+=data.values[i]+"";//得到数据。
- }
- s+="Data.values:"+values;
- textView.setText(s);//显示数据
- }
- }
startActivityForResult反回数据
- package com.smart.intent;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- public class SmartProcess extends Activity implements OnClickListener
- {
- private EditText editText;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.process);
- editText=(EditText)findViewById(R.id.edittext);
- Button btnOK=(Button)findViewById(R.id.btnOK);
- Button btnCencel=(Button)findViewById(R.id.btnCancel);
- btnOK.setOnClickListener(this);
- btnCencel.setOnClickListener(this);
- }
- @Override//按建的判断
- public void onClick(View v) {
- switch(v.getId()){
- case R.id.btnOK:
- getIntent().putExtra("text", editText.getText().toString());
- setResult(20,getIntent());
- break;
- case R.id.btnCancel:
- setResult(21);
- break;
- }
- finish();
- }
- }
本文转自 llb988 51CTO博客,原文链接:http://blog.51cto.com/llb988/498894,如需转载请自行联系原作者