我是这个Android世界的新手,我正在学习制作应用,所以我遇到了问题。
正在使用
我创建了一个片段,里面有一个包含3个单选按钮的广播组
目标
当用户返回此屏幕时,清除片段内的所有单选按钮
问题
我不知道如何实现
问题
如何清除单选按钮的所有检查?
已完成步骤
我尝试了以下内容:
但似乎我不能这样做
代码
这段代码对我不起作用(来自上面的帖子)
protected void onResume()
{
RadioGroup rg=(RadioGroup)findViewById(R.id.RG);
rg.clearCheck();
super.onResume();
}
但我有以下内容:
public class Operations extends Fragment
{
RadioButton surfArea, rad, diam;
RadioGroup radG;
Button openSelect;
public Operations()
{
// Required empty public constructor
}
public static Operations newInstance()
{
return new Operations();
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_operations_sphere, container, false);
surfArea = (RadioButton) rootView.findViewById(R.id.RB_surfArea);
rad = (RadioButton) rootView.findViewById(R.id.RB_Rad);
diam = (RadioButton) rootView.findViewById(R.id.RB_Diam);
openSelect = (Button) rootView.findViewById(R.id.btn_open_select);
//This piece is for testing purposes
openSelect.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if (surfArea.isChecked())
{
Intent sa = new Intent(getContext(), OperSphere.class);
startActivity(sa);
}
}
});
return rootView;
}
//Here is where I'm stuck
@Override
public void onResume()
{
super.onResume();
}
}
我有兴趣将代码放在onResume()
我知道有关于片段(https://developer.android.com/guide/components/fragments.html)的文档,但那些不能回答我的问题
提前致谢
答案 0 :(得分:1)
1)在onCreateView方法中将您的RadioGroup初始化为
private RadioGroup rg;
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_operations_sphere, container, false);
// initialize your radiogroup here
rg = (RadioGroup) rootView.findViewById(R.id.RG);
.....
// Rest of your code
}
2)现在调用以下方法,即 clearSelection(),无论你想在哪里UNCHECK RadioButtons(但在上面的代码之后)。
private void clearSelection(){
if(rg != null) rg.clearCheck();
}
3)示例:如果要取消选中onResume()中的RadioButtons,可以从那里调用
@Override
public void onResume(){
super.onResume();
clearSelection();
}
如果你想从其他方法中做到这一点,它甚至可以作为
private void myMethod(){
// need to clear radio buttons
clearSelection();
// rest of my code
}
答案 1 :(得分:0)
您是否尝试过将呼叫super.onResume()
置于您想要实现的目标之前......
答案 2 :(得分:0)
在onResume回调中调用radioGroup的clearCheck()方法,如:
@Override
protected void onResume() {
super.onResume();
rg.clearCheck();
}
答案 3 :(得分:0)
对于面临相同问题的任何人,在片段之间导航时,都可以这样做以使其正常工作。
radioButton.setSaveEnabled(false);
请确保对组中的所有单选按钮(而不是radioGroup本身)执行
注意:此标志只能禁用该视图的保存。任何子视图可能仍会保存其状态。