Fragment与Activity相互传递参数

一、基本思路

1、首先,确定前提,要传值的Fragment必须在此Activity中,然后在Fragment中定义接口。

2、其次,在要接收数据的Activity中实现这个接口。

3、最后,在Fragment的onAttach()中获取接口实例化对象。

二、具体实现

1、Fragment4.java中定义接口UserAndPassword。

    //	定义接口及接口的方法传递参数,若Fragment不需要传值给Activity则可以不定义参数
	public interface UserAndPassword {
		public String getUser(String user);
		public String getPassword(String password);
		public Drawable getUserImg();
	}

2、MainActivity.java中实现这个接口。

public class MainActivity extends FragmentActivity implements UserAndPassword{
	   
	   
	   //实现用户密码接口
		@Override
		public String getUser(String user) {
			//这里的user是从前一个Activity获取的,可以依据自己需要修改
			user = getIntent().getStringExtra("name");
			return user;
		}  
		@Override
		public String getPassword(String password) {
			// TODO Auto-generated method stub
			password = getIntent().getStringExtra("password");
			return password;
		}

		@Override
		public Drawable getUserImg() {
			Drawable useImgDraw;
			String userImgStr = getIntent().getStringExtra("userImg");
			if(userImgStr!=null){
				 useImgDraw = new StringToInput().StringToInput(userImgStr); 
			}else{
				 useImgDraw = null;
			}
			return useImgDraw;
		}
}
3、Fragment4.java中的onAttach()中获取接口实例化对象。
public class TabFragment4 extends Fragment {

	public UserAndPassword mUserAndPassword;
	

	@Override
	public void onAttach(Activity activity) {
		
		super.onAttach(activity);
		try {
			mUserAndPassword = (UserAndPassword) activity;
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("接口实例化异常");
		}
		
	}
	
}
4、使用从MainActivity传来的值。
    private String name,password;
    
    name = mUserAndPassword.getUser(name);
    password = mUserAndPassword.getPassword(password);





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值