Java 使用另一个片段中的按钮打开片段
我想用另一个片段中的按钮打开另一个片段 这是带按钮的片段Java 使用另一个片段中的按钮打开片段,java,android,Java,Android,我想用另一个片段中的按钮打开另一个片段 这是带按钮的片段 @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_myday,
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_myday, container, false);
Button buttonNext = (Button)view.findViewById(R.id.next);
buttonNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment someFragment = new TomorrowFragment();
FragmentTransaction fr = getFragmentManager().beginTransaction();
fr.replace(R.id.fragment_container, someFragment);
fr.commit();
}
});
return view;
片段xml
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Next to 2"
android:layout_centerInParent="true"
android:layout_alignParentRight="true"
android:id="@+id/next"/>
我按下按钮后什么也没发生。我遵循了其他帖子的代码,但没有任何效果。这是什么意思?CommitteAllowingStateLoss()?我计划让我的所有片段在切换时不会丢失它们的状态(数据)。这会违背它吗@khushpreetIt可以很好地工作,如果您希望在片段事务期间保存数据,那么使用add而不是replace。
buttonNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment someFragment = new TomorrowFragment();
FragmentTransaction fr = getSupportFragmentManager().beginTransaction();
fr.replace(R.id.fragment_container, someFragment);
fr.commitAllowingStateLoss();
}
});