android Fragment与Activity之间数据交互
来源:互联网 发布:sybase数据库访问 编辑:程序博客网 时间:2024/04/29 03:16
本文实现了两个功能:
1、在Fragment中通过getActivity获取activity中组件在通过组件获取内容的方法获取activity中的数据。2、在Activity中通过接口回调的方法获取Fragment中组件的值。
目录结构:
效果图:
MainActivity代码:
import android.app.Activity;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Toast;import com.example.class_fragment_activity_communicating_data.Fragment1.CallBack;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); final Fragment1 fragment1 = new Fragment1(); transaction.add(R.id.right, fragment1, "fragment1"); transaction.commit(); findViewById(R.id.A_button1).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub fragment1.getEditText(new CallBack() { // 通过接口回调获取Fragment中的值 @Override public void getData(String str) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, str, 1) .show(); } }); } }); }}
Fragment中代码:
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.EditText;import android.widget.Toast;public class Fragment1 extends Fragment { private EditText editText; @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.fragment1_layout, null); editText = (EditText) view.findViewById(R.id.editText1); view.findViewById(R.id.button1).setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub EditText editText = (EditText) getActivity() .findViewById(R.id.editText1);// 通过getAcitivity获取Activity中的组件再获取Activity中的值 Toast.makeText(getActivity(), editText.getText().toString(), 1).show(); } }); return view; } // 接口回调 //创建一个方法,传递一个接口作为参数 public void getEditText(CallBack callBack) { //调用该接口的方法并且将需要传递给Activity的值作为该方法的参数 callBack.getData(editText.getText().toString()); } //创建一个接口定义一个方法getData将需要传递给Activity的值的类型作为参数类型 public interface CallBack { public void getData(String str); } @Override public void onPause() { // TODO Auto-generated method stub super.onPause(); }}
布局文件代码:
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <LinearLayout android:id="@+id/left" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:background="#cccccc" android:gravity="center_vertical|center_horizontal" android:orientation="vertical" > <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="Activity文本输入框" > <requestFocus /> </EditText> <Button android:id="@+id/A_button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击获取Fragment中文本输入框的值" /> </LinearLayout> <LinearLayout android:id="@+id/right" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="2" android:background="#ccddcc" android:gravity="center_vertical|center_horizontal" android:orientation="horizontal" > </LinearLayout></LinearLayout>
fragment1_layout.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="在Fragment中读取Activity组件中的值" /> <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Fragment 文本输入框"> <requestFocus /> </EditText></LinearLayout>
Fragment 与 Fragment之间数据的交互请访问:
http://blog.csdn.net/q296264785/article/details/53169440
0 0
- android Fragment与Activity之间数据交互
- Android进阶之Fragment与Activity之间的数据交互
- activity与fragment之间的数据交互
- Fragment与Activity之间的数据交互
- Fragment与Activity之间的数据交互
- Android Activity与Fragment 数据交互
- Activity与fragment之间交互
- Android-Activity与Fragment之间传递数据
- Android fragment和activity之间的数据传递交互
- fragment和activity之间进行数据交互
- Android fragment与Activity交互
- Fragment与Fragment之间的数据交互
- Activity与fragment之间的交互总结
- android Fragment与Activity交互,互相发数据(附图详解)
- android Fragment与Activity交互,互相发数据(附图详解)
- 【Fragment精深系列4】Fragment与Activity之间的数据交互
- 【Fragment精深系列4】Fragment与Activity之间的数据交互
- Android Fragment与Activity之间的数据交换(Fragment从Activity获取数据)
- 虚拟演播室系统
- java安装1.8的经验和Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVers问题处理
- java实现ping的效果
- 文件权限管理__4__特殊权限
- 前端视频网站
- android Fragment与Activity之间数据交互
- git origin 和master的含
- H5图片切换,js图片轮播,js图片自动切换
- 工作流引擎Activiti使用总结
- 正则的写法
- 单词3
- 欢迎使用CSDN-markdown编辑器
- 查询节点并删除
- tf.gather 实例