onActivityResult(),startActivityForResult()的使用

范例1:注册时选择所在城市,

MainActivity :

package com.mingrisoft;

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;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button button=(Button)findViewById(R.id.button1);	//获取选择所在城市的按钮
        button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
		        Intent intent=new Intent(MainActivity.this,HeadActivity.class);
		        startActivityForResult(intent, 0x11);	//启动intent对应的Activity				
			}
		});
    }  public void onCreate

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		if(requestCode==0x11 && resultCode==0x11){	//判断是否为待处理的结果
			Bundle bundle=data.getExtras();		//获取传递的数据包
			String city=bundle.getString("city");	//获取选择的城市
			TextView tv=(TextView)findViewById(R.id.city);	//获取布局文件中添加的ImageView组件
			tv.setText(city);
		}
	}///protected void onActivityResult
    
}///public class MainActivity

HeadActivity :

package com.mingrisoft;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;

public class HeadActivity extends Activity {

	public String[] city = new String[] { "北京", "上海","广州","长春","沈阳","哈尔滨","天津","西安","杭州","深圳","南京","洛阳" }; 							// 定义并初始化保存头像id的数组
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.head);		//设置该Activity使用的布局
		GridView gridview = (GridView) findViewById(R.id.gridView1); 			// 获取GridView组件
		BaseAdapter adapter=new BaseAdapter() {
			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				TextView tv;							//声明TextView的对象
				if(convertView==null){
					tv=new TextView(HeadActivity.this);		//实例化TextView的对象
					tv.setPadding(5, 5, 5, 5);				//设置TextView的内边距
				}else{
					tv=(TextView)convertView;
				}
				tv.setText(city[position]);		//为TextView设置要显示的图片
				return tv;	//返回TextView
			}
			/* 
			 * 功能:获得当前选项的ID
			 */
			@Override
			public long getItemId(int position) {
				return position;
			}
			/* 
			 * 功能:获得当前选项
			 */
			@Override
			public Object getItem(int position) {
				return position;
			}
			/*
			 * 获得数量
			 */
			@Override
			public int getCount() {
				return city.length;
			}
		};
		
		gridview.setAdapter(adapter); 									// 将适配器与GridView关联
		gridview.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
				Intent intent=getIntent();	//获取Intent对象
				Bundle bundle=new Bundle();	//实例化要传递的数据包
				bundle.putString("city",city[position] );// 显示选中的图片
				intent.putExtras(bundle);	//将数据包保存到intent中
				setResult(0x11,intent);	//设置返回的结果码,并返回调用该Activity的Activity
				finish();		//关闭当前Activity
			}
		});
		
	}

}
范例2  显示注册信息

<pre name="code" class="java">MainActivity :

 
package com.mingrisoft;

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

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button submit=(Button)findViewById(R.id.submit);	//获取提交按钮
        submit.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				String user=((EditText)findViewById(R.id.user)).getText().toString();	//获取输入的用户
				String pwd=((EditText)findViewById(R.id.pwd)).getText().toString();	//获取输入的密码
				String repwd=((EditText)findViewById(R.id.repwd)).getText().toString();	//获取输入的确认密码
				String email=((EditText)findViewById(R.id.email)).getText().toString();	//获取输入的E-mail地址
				if(!"".equals(user) && !"".equals(pwd) && !"".equals(email)){
					
					if(!pwd.equals(repwd)){	//判断两次输入的密码是否一致
						Toast.makeText(MainActivity.this, "两次输入的密码不一致,请重新输入!", Toast.LENGTH_LONG).show();
						((EditText)findViewById(R.id.pwd)).setText("");	//清空密码编辑框
						((EditText)findViewById(R.id.repwd)).setText("");	//清空确认密码编辑框
						((EditText)findViewById(R.id.pwd)).requestFocus();	//让密码编辑框获得焦点
					}else{	//将输入的信息保存到Bundle中,并启动一个新的Activity显示输入的用户注册信息
						Intent intent=new Intent(MainActivity.this,RegisterActivity.class);
						Bundle bundle=new Bundle();	//创建并实例化一个Bundle对象
						bundle.putCharSequence("user", user);	//保存用户名
						bundle.putCharSequence("pwd", pwd);	//保存密码
						bundle.putCharSequence("email", email);	//保存E-mail地址
						intent.putExtras(bundle);	//将Bundle对象添加到Intent对象中
						startActivity(intent);	//启动新的Activity
						
					}
				}else{
					Toast.makeText(MainActivity.this, "请将注册信息输入完整!", Toast.LENGTH_LONG).show();
				}
				
			}
		});
    }
}

<pre name="code" class="java">RegisterActivity :
 
package com.mingrisoft;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class RegisterActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.register);	//设置该Activity中要显示的内容视图
		Intent intent=getIntent();	//获取Intent对象
		Bundle bundle=intent.getExtras();	//获取传递的数据包
		TextView user=(TextView)findViewById(R.id.user);		//获取显示用户名的TextView组件
		user.setText("用户名:"+bundle.getString("user"));		//获取输入的用户名并显示到TextView组件中
		TextView pwd=(TextView)findViewById(R.id.pwd);		//获取显示密码的TextView组件
		pwd.setText("密码:"+bundle.getString("pwd"));		//获取输入的密码并显示到TextView组件中
		TextView email=(TextView)findViewById(R.id.email);		//获取显示E-mail的TextView组件
		email.setText("E-mail:"+bundle.getString("email"));		//获取输入的E-mail并显示到TextView组件中
		
	}

}

如果新的Actiity有返回值或者用新的Activity的返回值做一些操作,在旧Activity中需要用到startActivityForResult(intent, 0x11);和onActivityResult(int requestCode, int resultCode, Intent data);在新的Activity中需要用到setResult(0x11,intent);

如果新的Actiity没有返回值,在只要在旧Activity中用startActivity(intent);即可


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十六画生的博客

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值