1.fragment通过回调接口 将值返给Activity
2.Activity 通过setArguments 传值给另一个Fragment
代码:
Fragment1 :
package com.qianfeng.fragmenttofragment1;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
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;
@SuppressLint("NewApi")
public class Fragmet1 extends Fragment{
private EditText et1;
private Button btn1;
CallBackValues callBackValues;
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
//得到activity中回调接口的实例化对象
callBackValues =(CallBackValues) getActivity();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
/**
* 第一个参数:布局资源id 唯一标示
* 第二个参数:表示当前父布局容器
* 第三个参数:表示是否追加父布局容器
*/
View view = inflater.inflate(R.layout.fragment_layout1, container, false);
et1 = (EditText) view.findViewById(R.id.et1);
btn1 = (Button) view.findViewById(R.id.btn1);
//监听按钮点击事件 将值传给activity
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String strValues = et1.getText().toString().trim();
callBackValues.SendMessage(strValues);
}
});
return view;
}
//定义回调接口
public interface CallBackValues{
public void SendMessage(String StrValues);
}
}
Activity:
package com.qianfeng.fragmenttofragment1;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import com.qianfeng.fragmenttofragment1.Fragmet1.CallBackValues;
@SuppressLint("NewApi")
public class MainActivity extends Activity implements CallBackValues{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void SendMessage(String StrValues) {
// TODO Auto-generated method stub
//得到FragmentManager对象
FragmentManager manager = getFragmentManager();
//得到FragmentTransaction对象
FragmentTransaction transaction = manager.beginTransaction();
//得到Fragment2 对象
Fragment2 fragment2 = new Fragment2();
Bundle bundle = new Bundle();
bundle.putString("str", StrValues);
fragment2.setArguments(bundle);
//将fragment2 替换布局
transaction.replace(R.id.contents, fragment2);
transaction.commit();//提交事务
}
}
Fragment2:
package com.qianfeng.fragmenttofragment1;
import android.annotation.SuppressLint;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
@SuppressLint("NewApi")
public class Fragment2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
/**
* 第一个参数:布局资源id 唯一标示 第二个参数:表示当前父布局容器 第三个参数:表示是否追加父布局容器
*/
View view = inflater.inflate(R.layout.fragment_layout2, container,
false);
TextView tv_show =(TextView) view.findViewById(R.id.tv_show);
//得到activity传过来的bundle对象
Bundle bundle = getArguments();
if(bundle!=null){
tv_show.setText(bundle.getString("str"));
}
return view;
}
}