大家好日子。我在片段中检查了Listener,我需要在这个监听器中键入一些方法,但是需要使用的数据在另一个片段中。如何从不同的片段发送这些数据?我可以从另一个片段调用checkedListener并在mainActivity类中为他键入一些规则吗?我将非常感谢你的帮助。谢谢。
我如何发送我需要创建的sreeshot示例(顶部的第一个方块是mainFragment,其中包含Sum -1 + 4的数据,在底部有diamonts,我有另一个片段,它有checkedListener,我需要比较和从不同的片段,如果是真的,我需要在文本中setTextColor):
答案 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,则获取当前片段实例需要一些额外的步骤。