Java 如何从另一个片段调用方法
大家好。我已经在片段中检查了listener,我需要在这个listener中键入一些方法,但需要使用的数据在另一个片段中。如何从不同的片段发送此数据?我可以从另一个片段调用checkedListener并在mainActivity类中为他键入一些规则吗?我将非常感谢你的帮助。多谢各位 我如何发送我需要创建的sreeshot示例(顶部的第一个正方形是main fragment,其数据为和-1+4,底部为diamonts,我有另一个片段,其具有checkedListener,我需要比较不同片段的和,如果为真,我需要在文本中设置xtColor):Java 如何从另一个片段调用方法,java,android,Java,Android,大家好。我已经在片段中检查了listener,我需要在这个listener中键入一些方法,但需要使用的数据在另一个片段中。如何从不同的片段发送此数据?我可以从另一个片段调用checkedListener并在mainActivity类中为他键入一些规则吗?我将非常感谢你的帮助。多谢各位 我如何发送我需要创建的sreeshot示例(顶部的第一个正方形是main fragment,其数据为和-1+4,底部为diamonts,我有另一个片段,其具有checkedListener,我需要比较不同片段的和,
片段不打算在彼此之间直接对话。 您可以执行以下两种操作之一: 1-将数据存储在两个片段共用的活动中,并让每个片段在整个活动中获取和设置数据 或 2-如果数据确实绑定到其中一个片段,那么让另一个片段请求活动提供数据。反过来,活动可以要求具有数据的框架将其移交,以便将其传递给请求的框架 片段和活动之间的通信可以通过接口完成,也可以通过将活动直接转换到其具体类来完成 在另一个方向,通过引用相应的片段
注意:如果对片段使用ViewPager,则获取当前片段实例需要一些额外的步骤。正如@Juan answer建议的那样,片段不应直接通信。这就是你如何做到的 这是实现fragment中定义的接口的activity类
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;
}
}