一、基本思路
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("接口实例化异常");
}
}
}
private String name,password;
name = mUserAndPassword.getUser(name);
password = mUserAndPassword.getPassword(password);