如何从另一个片段调用方法

时间:2017-12-01 13:37:35

标签: java android

大家好日子。我在片段中检查了Listener,我需要在这个监听器中键入一些方法,但是需要使用的数据在另一个片段中。如何从不同的片段发送这些数据?我可以从另一个片段调用checkedListener并在mainActivity类中为他键入一些规则吗?我将非常感谢你的帮助。谢谢。

我如何发送我需要创建的sreeshot示例(顶部的第一个方块是mainFragment,其中包含Sum -1 + 4的数据,在底部有diamonts,我有另一个片段,它有checkedListener,我需要比较和从不同的片段,如果是真的,我需要在文本中setTextColor): enter image description here

2 个答案:

答案 0 :(得分:1)

@Juan回答表明片段不应该直接通信。这就是你设法这样做的方式。

这是您的活动类,它实现了片段

中定义的接口
public class MainActivity extends Activity implements FragmentInterface {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    @Override
    public void fragmentInterfaceMethod(int your_value) {
        //use your_value to send it to another fragment
    }

}

你的片段类:

public class MyFragment extends Fragment {

   public interface FragmentInterface {
       void fragmentInterfaceMethod(int your_value);
   }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        mView = inflater.inflate(R.layout.fragment_word_definition, container, false);

        int myValue = 123;
        ((FragmentInterface)getActivity()).fragmentInterfaceMethod(myValue);

        return mView;
    }
}

答案 1 :(得分:0)

片段无意在彼此之间直接对话。 你可以做以下两件事之一:

1 - 将数据存储在两个片段共有的活动中,让每个片段通过活动获取和设置数据。

2 - 如果数据确实绑定到其中一个片段,则让另一个片段请求活动提供数据。反过来,活动可以询问有数据的framgment交给它,以便它可以将它传递给请求的框架。

片段和活动之间的通信可以通过接口完成,也可以直接将活动转换为具体类。

在另一个方向上使用对相应片段的引用。

注意:如果您为片段使用ViewPager,则获取当前片段实例需要一些额外的步骤。