您的位置:首页 > 移动开发 > Android开发

android 之得到新打开Activity 关闭后返回的数据

2011-11-09 11:21 483 查看
现在有这样的功能需求。在一个Activity (A)中打开另一个Activity(B).在另一个B 中添写数据,当这个B关闭时,把在B中填写的

数据返回给A,并写显示出。这样就有必要用今天的功能了。

以下为是代码。也就是Activity (A)

package com.hkrt.intent;

import com.hkrt.domain.Person;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class IntentDemoActivity extends Activity {
/** Called when the activity is first created. */
private static final String LOG="IntentDemoActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
Log.i(LOG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button =(Button)this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(IntentDemoActivity.this,OtherActivity.class);
// 方法一
//			 intent.putExtra("name","张三");
//方法二
Bundle bun = new Bundle();
bun.putString("name","张三");
bun.putInt("age", 18);
Person per = new Person("张三",5896.20);
bun.putSerializable("person", per);
intent.putExtras(bun);
//			 startActivity(intent);
startActivityForResult(intent, 10);
}
});
}
//接收新的Activiity 返回的结果
/**
* requestCode:10
* resultCode:100
* */
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){
Toast.makeText(this, data.getExtras().getString("name")+"requestCode:"+requestCode+"resultCode"+resultCode, 1).show();
super.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onStart() {
Log.i(LOG, "onStart");
super.onStart();
}

@Override
protected void onResume() {
Log.i(LOG, "onResume");
super.onResume();
}

@Override
protected void onPause() {
Log.i(LOG, "onPause");
super.onPause();
}

@Override
protected void onRestart() {
Log.i(LOG, "onRestart");
super.onRestart();
}

@Override
protected void onStop() {
Log.i(LOG, "onStop");
super.onStop();
}

@Override
protected void onDestroy() {
Log.i(LOG, "onDestroy");
super.onDestroy();
}
}


Activity(B).

package com.hkrt.intent;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.hkrt.domain.Person;

public class OtherActivity extends Activity {
private static final String LOG="OtherActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
Intent intent = this.getIntent();
//方法一
//		String name = intent.getStringExtra("name");
//方法二
Bundle  bun =  intent.getExtras();
String name1 = bun.getString("name");
int age = bun.getInt("age",10);
TextView textView = (TextView)this.findViewById(R.id.textView);

Person per =	(Person)bun.getSerializable("person");
textView.setText("姓名:"+name1+"\t年龄:"+age+"\tperson:"+per.getName()+"\tmoney:"+per.getMoney());

Button button = (Button)this.findViewById(R.id.shut_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("name", "hello android ,i am comming");
setResult(100, intent);
OtherActivity.this.finish();
}
});
}
@Override
protected void onResume() {
Log.i(LOG, "onResume");
super.onResume();
}
@Override
protected void onStart() {
Log.i(LOG, "onStart");
super.onStart();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
// 返回按键
if (keyCode == KeyEvent.KEYCODE_BACK)
{
new AlertDialog.Builder(this)
.setCancelable(false)
.setIcon(android.R.drawable.btn_dialog)
.setTitle("退出").
setMessage("您确认要退出程序吗?")
.setPositiveButton("确定", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
//关闭程序的核心方法
//							OtherActivity.this.finish();
dialog.cancel();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener()
{

public void onClick(DialogInterface dialog, int which)
{
dialog.cancel();
}
}).show();
}
return true;
}

}


第一个Activity .页面只有一个button.第二个Acivity 有一个TextView 和一个Button.当点击button时,返回到第一个Activity.页面比较简单。

结果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: