有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何刷新片段内容

我已经创建了一个包含多个片段的应用程序

  • 每次我点击一个与片段相关的按钮时,我都会改变片段
  • 问题是我有一个函数,当我启用该函数时,我的应用程序必须转到指定的片段并启用所有选项,它可以启用一些额外的选项—一种类似于专家模式的所有片段
  • 问题是应用程序转到该片段,但只有在单击其他按钮并单击该片段的返回按钮时,该选项才为启用

我如何解决这个问题

更改片段的代码:

public void ChangeFragment(View view) {
    Fragment fragment;

    if (view == findViewById(R.id.button_sp)) {
        fragment = new SpoilerFragment();
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.fragment2, fragment);
        ft.commit();
    }
    if (view == findViewById(R.id.button_bl)) {

        fragment = new BlinkFragment();
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.fragment2, fragment);
        ft.commit();
    }

    if (view == findViewById(R.id.button_br)) {
        fragment = new BremslichtFragment();
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.fragment2, fragment);
        ft.commit();

    }

    if (view == findViewById(R.id.button_ru)) {
        fragment = new RucklichtFragment();
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.fragment2, fragment);
        ft.commit();

    }
    if (view == findViewById(R.id.button_ruc)) {

        fragment = new RuckfahrleuchteFragment();
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.fragment2, fragment);
        ft.commit();
    }

    if (view == findViewById(R.id.button_sz)) {
        fragment = new SzenenFragment();
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.fragment2, fragment);
        ft.commit();

    }
} 

以下是启用专家模式后如何刷新或转到该片段的方法:

   public void refresh() {
    Fragment fragment;
    fragment = new BlinkFragment();
    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    ft.replace(R.id.fragment2, fragment);
    ft.commit();
}

专家模式功能仅将标志设置为true。 以下是binkfragment的一部分:

public class BlinkFragment extends Fragment implements View.OnClickListener {
private Switch switch_b1, switch_b2;
private DiscreteSeekBar discrete_bl_g, discrete_bl_h;

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

    discrete_bl_g = (DiscreteSeekBar) v.findViewById(R.id.discrete_bl_g);
    discrete_bl_h = (DiscreteSeekBar) v.findViewById(R.id.discrete_bl_h);

    discrete_bl_g.setEnabled(ledControl.instance.data.expertMode);
    discrete_bl_h.setEnabled(ledControl.instance.data.expertMode);

ledControl主类 https://docs.google.com/document/d/12gbxRStzLDmC2Q0kj7EJsx3fnHpeQ5sQNhWbTKTjxx8/edit?usp=sharing


共 (0) 个答案