作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个单选组,我可以在其中以编程方式添加单选按钮。这一切都是在 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/
我是一名优秀的程序员,十分优秀!