片段B中的片段A中的“监听”按钮

时间:2019-12-09 15:43:20

标签: javascript android fragment onclicklistener

所以我想从Test2内部收听fragment_blank_fragment2中的fragment_terminal按钮。此代码对我不起作用。可以这样做吗?

View view = inflater.inflate(R.layout.fragment_terminal, container, false);
View view2 = inflater.inflate(R.layout.fragment_blank_fragment2, container, false);
View sendBtn2 = view2.findViewById(R.id.test2);
sendBtn2.setOnClickListener(v -> send("Test2"));
View sendBtn = view.findViewById(R.id.test);
sendBtn.setOnClickListener(v -> send("Test"));

1 个答案:

答案 0 :(得分:0)

  • 首先在fragment_terminal中,需要创建一个使用View.OnClickListener对象的setter方法,然后可以使用该对象将其设置为clickListener test2按钮,如下所示
public void setTest2ClickListener(@NonNull View.OnClickListener clickListener) {
        test2Button.setOnClickListener(clickListener);
}
  • 在fragment_blank_fragment2内部,创建一个吸气剂以返回用于处理testButton clickListener的View.OnClickListener,如下所示:
@NonNull
    public View.OnClickListener getTest2ClickListener() {
        return new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //TODO implement here
            }
        };
    }
  • 然后在显示这些片段的活动中,使用getSupportFragmentManager().findFragmentByTag("tag")查找两个片段,然后在fragment_terminal中调用setter,并在fragment_blank_fragment2中使用getter的返回值来设置侦听器。 这是实现它的一种方式。