Android fragments实例之间的通信
来源:互联网 发布:爱国 知乎 编辑:程序博客网 时间:2024/05/17 04:16
http://blog.csdn.net/manoel/article/details/7578962
2.fragment2.xml
3.main.xml中的代码。
5.Fragment2.java中的代码。
通常情况下,一个activity可能包含一个或多个fragment,它们协同工作,组成一个连贯的UI界面。在这种情况下,多个fragments之间的通信显得就很重要了。举个例子,一个activity包含左右两个fragment,左侧的fragment包含了一个列表(比如新闻题目列表),当点击每个新闻题目的时候,右侧的fragment就会显示这条新闻的详尽信息。
下面展示如何进行操作。
Fragment1在整个activity的左侧,Fragment2在右侧。
1.fragment1.xml中的代码。
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="#00FF00"
- android:orientation="vertical" >
- <TextView
- android:id="@+id/lblFragment1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="This is fragment #1"
- android:textColor="#000000"
- android:textSize="25sp" />
- </LinearLayout>
2.fragment2.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="#FFFE00"
- android:orientation="vertical" >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="This is fragment #2"
- android:textColor="#000000"
- android:textSize="25sp" />
- <Button
- android:id="@+id/btnGetText"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="Get text in Fragment #1"
- android:textColor="#000000" />
- </LinearLayout>
3.main.xml中的代码。
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="horizontal" >
- <fragment
- android:id="@+id/fragment1"
- android:name="net.learn2develop.Fragments.Fragment1"
- android:layout_width="0px"
- android:layout_height="match_parent"
- android:layout_weight="1" />
- <fragment
- android:id="@+id/fragment2"
- android:name="net.learn2develop.Fragments.Fragment2"
- android:layout_width="0px"
- android:layout_height="match_parent"
- android:layout_weight="1" />
- </LinearLayout>
4.FragmentsActivity.java中的代码。
- package net.learn2develop.Fragments;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.TextView;
- import android.widget.Toast;
- public class FragmentsActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- public void onClick(View v) {
- TextView lbl = (TextView) findViewById(R.id.lblFragment1);
- Toast.makeText(this, lbl.getText(), Toast.LENGTH_SHORT).show();
- }
- }
5.Fragment2.java中的代码。
- package net.learn2develop.Fragments;
- import android.app.Fragment;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.Button;
- import android.widget.TextView;
- import android.widget.Toast;
- public class Fragment2 extends Fragment {
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- // ---Inflate the layout for this fragment---
- return inflater.inflate(R.layout.fragment2, container, false);
- }
- @Override
- public void onStart() {
- super.onStart();
- // ---Button view---
- Button btnGetText = (Button) getActivity()
- .findViewById(R.id.btnGetText);
- btnGetText.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- // 这里是关键,getActivity()方法返回这个fragment所在的activity实例,通过activity实例可以获取在其中的组件,其他就很简单了。
- TextView lbl = (TextView) getActivity().findViewById(
- R.id.lblFragment1);
- Toast.makeText(getActivity(), lbl.getText(), Toast.LENGTH_SHORT)
- .show();
- }
- });
- }
- }
6. 调试。
点击右边的“Get text in Fragment #1”按钮,将弹出一个提示。
0 0
- Android fragments实例之间的通信
- Android fragments实例之间的通信
- Android 程式开发:(三)初识Fragment —— 3.4fragments实例之间的通信
- 【Android Training - 03】使用Fragments建立动态的UI [ Lesson 4 - Fragment之间的通信 ]
- 【Android Training - 03】使用Fragments建立动态的UI [ Lesson 4 - Fragment之间的通信 ]
- Android开发之Fragments之间的交互
- 11Communicating with Other Fragments(Fragment之间的通信)
- Fragment之Fragments之间的通信(3)
- Fragments之间的交互
- Fragments之间的交互
- Fragments之间的交互
- Android Fragments 与 Activity 生命周期之间的关系
- Android Fragments的使用
- Android-Fragments的使用
- Android Fragments的概述
- Qt 多线程之间的通信 实例 emit
- Android:片段之间的通信
- android线程之间的通信
- [Android知识体系]之四大组件:activity(序列化和intent传递对象)
- 获取设备及浏览器等的高度和宽度
- 树莓3(Ubuntu虚拟机编译程序) 串口收发测试
- Cocos2d-x-3.10 SpriteBatchNode渲染
- 矩阵的生成
- Android fragments实例之间的通信
- js自适应高度
- sqlalchemy ORM使用总结
- 导航栏 $_ajax异步局部刷新加载内容
- DB2的TRUNCATE功能
- kafka集群安装详细说明
- C控制语句:循环
- 大型程序的结构(三)【程序包】重点!!!
- mysql连接权限测试