Android的碎片互动 [英] Android Fragment Interaction

查看:125
本文介绍了Android的碎片互动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有1活性的Andr​​oid应用程序2片段。 在第一个片段,我做了一个推杆按钮(btnA)。 关于第二个我推杆一个TextView(txtB)。

I have 1 activity with 2 fragments in a Android app. On the first fragment I did putt a button (btnA). On the second I putt a TextView (txtB).

如何通过按下按钮上的第一个活动设置在第二个片段的TextView的文本?

How can I set a Text in the TextView of the second fragment by pushing on the button on the first activity ?

THX,我是新来的Andr​​oid应用程序开发

Thx, I'm new to android app development

JoskXP

推荐答案

以下描述Android的最佳实践的这里

Following Android best practice described here.

这是稍微比格雷姆的解决方案更详细,但让你的片段重复使用。 (你可以在另一个屏幕上使用FragmentWithButton,按钮可以做不同的事情)

This is slightly more verbose than the solution of Graeme, but allow reuse of your fragments. (You could use FragmentWithButton in another screen, and the button could do something different)

您有两个片段(<$ C C $> FragmentWithButton 和 FragmentWithText )和一个活动( MyActivity

You have two Fragments (FragmentWithButton and FragmentWithText) and one activity (MyActivity)

  1. 创建一个接口 FragmentWithButtonHost FragmentWithButton

public class FragmentWithButton extends Fragment {

    FragmentWithButtonHost host;

    public interface FragmentWithButtonHost{
        public void onMyButtonClicked(View v);
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);

        try {
            host = (FragmentWithButtonHost) activity;
        }
        catch (ClassCastException e) {
            // TODO Handle exception
        }
    }

    /**
     * Click handler for MyButton
     */
    public void onMyButtonClick(View v) {
        host.onMyButtonClicked(v);
    }
}

  • 创建一个公开方法 FragmentWithText 设置从活动的文字:

  • Create a public method in FragmentWithText to set the text from the activity:

    public class FragmentWithText extends Fragment{
    
          ...
    
          public void setText(String text) {
               // Set text displayed on the fragment
          }
    }
    

  • 请确保您的活动实现了 FragmentWithButtonHost 接口,并调用的setText 方法:

  • Make sure your activity implements the FragmentWithButtonHost interface, and call the setText method:

    public MyActivity implements FragmentWithButtonHost {
    
        ...
    
        @Override
        public void onMyButtonClicked(View v) {
            getFragmentWithText().setText("TEST");
        }
    
        public FragmentWithText getFragmentWithText() {
            // Helper method to get current instance of FragmentWithText, 
            // or create a new one if there isn't any
        }
    }
    

  • 这篇关于Android的碎片互动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆