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);//显示数据
}
}
从文件框中输入数据,Toast样式显示数据
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();
}
}