创建Framement之后,Framement不隐藏的话会叠加
回退
fragmentTransaction.addToBackStack("top");
传值
1.通过bundle来传递
//获取值的一方
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = manager.beginTransaction();
showFragment=new ShowFragment();
fragmentTransaction.add(R.id.show,showFragment);
fragmentTransaction.commit();
getstr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = input.getText().toString();
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = manager.beginTransaction();
showFragment=new ShowFragment();
Bundle bundle=new Bundle();
bundle.putString("str",s);
showFragment.setArguments(bundle);
fragmentTransaction.replace(R.id.show,showFragment);
fragmentTransaction.commit();
}
});
//更改值的一方
Bundle bundle = getArguments();
if(bundle!=null){
String str = bundle.getString("str");
output.setText(str);
}
2.通过回调的方式
private Mylistener mylistener;
public ShowToFragment() {
// Required empty public constructor
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mylistener = (Mylistener) getActivity();
}
//设置接口让那边调用
public interface Mylistener{
void sendMessage(String string);
}
//再回调
mylistener.sendMessage(s);
//调用
@Override
public void sendMessage(String string) {
textShow.setText(string);
}
Fragment 之间的传值
接口回调