gpt4 book ai didi

java - 在 RadioGroup 中选择 RadioButton 时,android RadioButton 文本不会更新,并且从 backstack 重新创建 Fragment

转载 作者:行者123 更新时间:2023-11-30 02:36:46 28 4
gpt4 key购买 nike

我有一个单选组,我可以在其中以编程方式添加单选按钮。这一切都是在 onCreateView() 方法中完成的,因此每次从后台堆栈重新创建 fragment 时都应该重做。我遇到的问题是,当我在开始时使用 RadioGroup.check(id) 以编程方式预选单选按钮时,RadioButton 文本在随后调用 onCreateView() 方法时不再更新.有什么想法吗?

如果这有任何不同,项目正在使用兼容性库 (v4)。

代码如下:

public static String x; //(x changes every time)

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View rootView = nflater.inflate(R.layout.right, container, false);

RadioGroup rg = (RadioGroup) rootView.findViewById(R.id.radioGroup1);
rg.removeAllViews();

Log.d("Cild count", Integer.toString(rg.getChildCount()); // Always 0

RadioButton.rb = new RadioButton(getActivity());

// Always works first time. Does not work with 1 and 2 when fragment is recreated from back stack.
rb.setText(x);
rb.setId(99099); // 1 Atbitrary int for id

rg.addView(rb);
rg.check(99099); // 2 Selection of radiobutton

return rootView;
}

最佳答案

通过不使用 backstack 而是手动处理 onBackPressed 解决了这个问题。

Fragment fr = getSupportFragmentManager().getFragmentByTag("Fragment name");

@Override
public void onBackPressed() {

if (fr != null)
{
getSupportFragmentManager().beginTransaction().replace(container, new PreviousFragment, "Tag").commit();
}
else
{
super.onBackPressed();
}
}

关于java - 在 RadioGroup 中选择 RadioButton 时,android RadioButton 文本不会更新,并且从 backstack 重新创建 Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26423383/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com