//xml
<RelativeLayout
android:id="@+id/rl"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</RelativeLayout>
【main】
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 得到Fragment管理者
FragmentManager fragmentManager = getSupportFragmentManager();
// 开启事务
FragmentTransaction beginTransaction = fragmentManager
.beginTransaction();
// 得到两个fragment对象
F1 f1 = new F1();
F2 f2 = new F2();
//添加Fragment到指定布局,并指定tag
beginTransaction.add(R.id.rl, f1,"f1").add(R.id.rl, f2,"f2").hide(f2).commit();
}
}
【f1】
/**
*
*/
package com.bwei.day_10____fragment_;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
/**
* @author WJL
*
*/
public class F1 extends Fragment {
private EditText et_name;
private EditText et_pass;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = View.inflate(getActivity(), R.layout.f1, null);
et_name = (EditText) view.findViewById(R.id.et_name);
et_pass = (EditText) view.findViewById(R.id.et_pass);
Button button = (Button) view.findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO
// 得到输入框的内容
String name = et_name.getText().toString().trim();
String pass = et_pass.getText().toString().trim();
// 得到fragment管理者
FragmentManager supportFragmentManager = getActivity()
.getSupportFragmentManager();
// 通过tag得到F2对象,这个tag是添加时写好的
F2 f2 = (F2) supportFragmentManager.findFragmentByTag("f2");
// 通过对象调变量,并赋值
f2.name = name;
f2.pass = pass;
// 得到事务
FragmentTransaction beginTransaction = supportFragmentManager
.beginTransaction();
beginTransaction.show(f2).hide(F1.this).commit();
}
});
return view;
}
}
【f2】
/**
*
*/
package com.bwei.day_10____fragment_;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
/**
* @author WJL
*
*/
public class F2 extends Fragment {
public String name;
public String pass;
private TextView tv_name;
private TextView tv_pass;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = View.inflate(getActivity(), R.layout.f2, null);
tv_name = (TextView) view.findViewById(R.id.tv_name);
tv_pass = (TextView) view.findViewById(R.id.tv_pass);
return view;
}
// 判断当前Fragment是否隐藏
@Override
public void onHiddenChanged(boolean hidden) {
//显示的话
if (!hidden) {
//tv_name修改为f1中更改发的name和pass
tv_name.setText(name);
tv_pass.setText(pass);
}
}
}