【从头学android】从新的Activity中返回数据给前一个Activity

1.起始Activity

/**
 * 
 */
package com.itest;

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.TextView;

/**
 * 从新的 Activity中返回数据
 * @author Robin
 */
public class ITestP6Activity extends Activity {
	Button b1;
	Button b2;
	View v1;
	TextView tv1;

	/** Called when the activity is first created. */
	@Override
	public void onCreate( Bundle savedInstanceState )
	{
		super.onCreate( savedInstanceState );
		// 缓存View1
		v1 = getLayoutInflater().inflate( R.layout.p61, null );
		b1 = (Button) v1.findViewById( R.id.button1 );
		tv1 =(TextView)v1.findViewById( R.id.textView1 );
		b1.setOnClickListener( new OnClickListener() {
			@Override
			public void onClick( View v )
			{
				tv1.setText( System.currentTimeMillis() + "" );
				// TODO Auto-generated method stub
			}
		} );
		// 动态修改v1中内容
		b2 = (Button) v1.findViewById( R.id.button2 );
		b2.setOnClickListener( new OnClickListener() {
			@Override
			public void onClick( View v )
			{
				Intent in = new Intent();
				in.putExtra( "text", tv1.getText() );
				in.setClassName( getApplicationContext(), "com.itest.ITestP7Activity" );
				startActivityForResult( in, 0 );
			}
		} );
		// 切换到v1
		setContentView( v1 );
	}

	/*
	 * (non-Javadoc)
	 * @see android.app.Activity#onActivityResult(int, int, android.content.Intent)
	 */
	@Override
	protected void onActivityResult( int requestCode, int resultCode, Intent data )
	{
		switch ( resultCode ) {
			case RESULT_OK :
				System.out.println(data.getExtras().getString( "result" ));
				tv1.setText( data.getExtras().getString( "result" ));
				break;
			default :
				break;
		}
		
	}
}

2.新的Activity


/**
 * 
 */
package com.itest;

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.TextView;

/**
 * @author Robin
 */
public class ITestP7Activity extends Activity {
	Button b1;
	View v1;
	TextView tv1;

	/** Called when the activity is first created. */
	@Override
	public void onCreate( Bundle savedInstanceState )
	{
		super.onCreate( savedInstanceState );
		// 缓存View1
		v1 = getLayoutInflater().inflate( R.layout.p71, null );
		// 动态修改v1中内容
		b1 = (Button) v1.findViewById( R.id.button1 );
		b1.setOnClickListener( new OnClickListener() {
			@Override
			public void onClick( View v )
			{
				Intent in = new Intent();
				in.putExtra( "result", "res" );
				setResult( RESULT_OK, in );
				finish();
			}
		} );
		tv1 = (TextView) v1.findViewById( R.id.textView1 );
		tv1.setText( "@" + getIntent().getExtras().getCharSequence( "text" ) );
		// 切换到v1
		setContentView( v1 );
	}
}

通过setResult和onActivityResult方法可以将结果返回给前一个activity,并进行一定的处理。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值