`
AaronGo
  • 浏览: 28761 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Fragment实现界面交互小实例<2>

阅读更多

        上一篇博文讲的是直接在layout中的xml文件中声明fragment,用android:name=""指明了在layout中药实例化的fragment类,当系统创建这个activity layout时,它实例化每一个在layout中声明的fragment,并调用每一个对应fragment类的onCreateView()方法,来获取每一个fragment的layout,系统将从fragment类返回的VIew直接插入到fragment元素所在的地方。

        第二种添加fragment的方法,使用FragmentManager将fragment添加到一个已存在的ViewGroup。只需要在指定一个放置fragment的ViewGroup,当activity运行的任何时候,都可以将fragment添加到activity layout。为了在activity中操作fragment的添加、删除、或替换一个fragment等,要用到FragmentTransaction。

        这种情况下,要再操作fragmeng布局文件中的组件,就不可以在MainActivity中直接用findViewById方法提取了(只有在main.xml文件中直接声明的fragment可以用),不然会报空指针错误,你可能会想到用inflater,效果是一样的,就是在MainActivity中要拿到该布局文件的View。

官网有这样一个小实例:

https://developer.android.com/training/basics/fragments/communicating.html

要实现这样的交互,步骤如下:

首先在RightFragment类中定义一个接口和一个接口里面的方法:

public interface MyListener{
		public void onViewItemClick(View v);
	}

 然后定义一个接口类的引用:MyListener listener;

在RightFragment的onAttach()方法中给listener这个引用赋个值,不然会出讨厌的nullpointerexception哦

@Override
	public void onAttach(Activity activity) {
		super.onAttach(activity);
		listener = (MyListener)activity;
	}

 在MainActivity类中实现MyListener这个接口,实现里面的方法,这样在RightFragment类中直接用

listener.onViewItemClick(view);将该类的view传过去,在MainActivity的实现方法函数中用v.findViewById(),就可以拿到任何RightFragment布局中的组件。

实现效果:



 附上源代码:

 

  • 大小: 33.2 KB
分享到:
评论

相关推荐

    Fragment实现tab实例

    本实例"Fragment实现tab"主要展示了如何使用Fragment和FragmentTabHost来创建一个带有标签切换功能的界面。接下来,我们将详细讨论Fragment以及如何使用它们来实现tab切换效果。 Fragment是Android 3.0(API级别11...

    Fragment实现tab实例 代码.zip

    List&lt;Fragment&gt; fragments = new ArrayList&lt;&gt;(); // 添加或替换Fragment实例 MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager(), fragments); viewPager.setAdapter(adapter); tabLayout....

    Fragment实现新闻阅读实例

    这个“Fragment实现新闻阅读实例”旨在教你如何利用Fragment构建一个类似新闻阅读的应用场景。我们将深入探讨Fragment的基本概念、创建与管理以及在实际应用中的使用技巧。 首先,Fragment是Android系统为了应对大...

    Android Studio使用ViewPager+Fragment实现仿微信滑动切换界面

    List&lt;Fragment&gt; fragments = new ArrayList&lt;&gt;(); fragments.add(new PageFragment()); fragments.add(new PageFragment()); PageAdapter adapter = new PageAdapter(getSupportFragmentManager(), fragments); ...

    fragment之间交互1

    Fragment之间的交互是Android开发中的一个重要知识点,尤其在设计复杂界面和实现动态布局时,这种交互显得尤为重要。下面将详细讨论Fragment之间的交互,包括基本的通信方式、使用Bundle传递数据、事件总线以及最佳...

    Fragment实现横竖屏的不同实现

    在Android应用开发中,Fragment是Android SDK提供的一种组件,它允许开发者在Activity中划分界面的各个部分,使得界面更加模块化。Fragment可以独立地进行生命周期管理,并且可以在不同的屏幕配置变化下保持状态,如...

    android利用viewPager和Fragment实现典型的选项卡界面

    List&lt;Fragment&gt; fragments = new ArrayList&lt;&gt;(); fragments.add(new FragmentTab1()); fragments.add(new FragmentTab2()); MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager(), ...

    Android Fragment实例

    在Android应用开发中,Fragment是Android SDK中的一个重要组件,它被设计用来支持多屏幕适配和增强用户界面的模块化。Fragment允许开发者将应用程序的功能或UI部分分解为独立的、可重用的组件,这些组件可以在不同的...

    Android解决多个Fragment切换时布局重新实例化问题,并保存当前fragment页面,系统回收后还原之前fragment页面,更新版

    在Android应用开发中,Fragment是实现界面动态组合和交互的重要组件。然而,当涉及到多个Fragment之间的切换时,可能会遇到一个问题:每次切换时,Fragment的布局可能会被重新实例化,导致用户体验下降,例如丢失...

    炫酷Fragment实例二代码

    在平板电脑等大屏幕设备上,Fragment使得开发者可以将一个Activity拆分成多个可独立交互的部分,而在手机等小屏幕设备上,它们则可以帮助构建更复杂、可重用的界面。本实例“炫酷Fragment”将深入探讨如何利用...

    Fragment与Activity之间通信实例

    在Android应用开发中,Fragment和Activity是两个核心组件,它们共同构建了用户界面。Fragment代表一个可重用的UI部分,而Activity则是程序中的一个窗口,它可以包含一个或多个Fragment。Fragment与Activity之间的...

    [Android源码备份][聊天通讯]ViewPager+Fragment实现QQ界面

    2. **数据绑定**:在`PagerAdapter`的`getItem()`方法中,根据当前页的索引创建对应的`Fragment`实例,并传入需要的数据。例如,创建不同聊天对话的`Fragment`时,可以将好友ID或群组ID作为参数传递。 3. **页面...

    Android的Viewpage2+fragment实现微信滑动界面的效果

    综上所述,通过使用Android的Viewpager2和Fragment,我们可以轻松实现微信式的滑动界面。Viewpager2提供了高效、灵活的页面管理,而Fragment则让内容呈现变得简单。在实际开发中,我们还可以结合其他组件和设计模式...

    fragment之间的切换实例

    在XML布局文件中,可以使用`&lt;fragment&gt;`标签将Fragment嵌入到Activity布局中,而通过代码添加则需要使用`FragmentManager`和`FragmentTransaction`。 当涉及到Fragment之间的切换时,通常会用到`...

    Android实现ViewPager+Fragment左右滑动

    List&lt;Fragment&gt; fragments = new ArrayList&lt;&gt;(); fragments.add(new FragmentOne()); fragments.add(new FragmentTwo()); // 创建PagerAdapter MyPagerAdapter adapter = new MyPagerAdapter...

    VIewPager+Fragment实现仿微信界面

    在Android开发中,"VIewPager+Fragment实现仿微信界面+(BadgView)数字提醒"是一个常见的需求,它涉及到UI设计、页面滑动切换以及通知提醒的实现。下面将详细讲解这一主题的相关知识点。 首先,ViewPager是Android ...

    Fragment和Activity交互(Handler方式)

    在本篇文章中,我们将深入探讨如何通过Handler机制来实现Fragment与Activity之间的交互,并能互相改变彼此的用户界面。 首先,理解Handler机制是关键。Handler是Android中用于线程间通信的一种方式,它允许我们在...

    fragmentdemo简单实例

    5. **布局管理**:Fragment可以嵌入在一个布局文件中,例如在`&lt;fragment&gt;`标签中指定Fragment类和布局参数。或者,也可以在代码中动态添加Fragment到一个已经存在的ViewGroup中。 6. **Fragment的通信**:Fragment...

    ViewPage+Fragment界面滑动

    private List&lt;Fragment&gt; fragmentList = new ArrayList&lt;&gt;(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main)...

Global site tag (gtag.js) - Google Analytics