フォーカスは常にクリックされたRadioButtonに設定されますが、同じRadioButtonがクリック後にCheckedとして設定されないことがあります。
あなたがラジオボタンをクリックしたときをGetFocusは常に最初に来るので、あなたが初めてRadioButton
をクリックすると、これCheckedChange
イベントがトリガやったことがなかったです。それはできるだけ早くあなたがそれをクリックしてチェックを設定する必要があります
public class MainActivity : Activity
{
RadioGroup radioGroup;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
radioGroup = FindViewById<RadioGroup>(Resource.Id.mGroup);
//register focus change event for every sub radio button.
for (int i = 0; i < radioGroup.ChildCount; i++)
{
var child=radioGroup.GetChildAt(i);
if (child is RadioButton)
{
((RadioButton)child).FocusChange += RadioButton_FocusChange;
}
}
}
private void RadioButton_FocusChange(object sender, Android.Views.View.FocusChangeEventArgs e)
{
//check if the radio button is the button that getting focus
if (e.HasFocus){
((RadioButton)sender).Checked = true;
}
}
}
:
だからそれを行うための正しい方法は、すべての
RadioButton
ためfocusChange
イベントを登録し、focusChange
イベントハンドラでチェックするラジオボタンを設定することです。これらのプロパティをハンドラ内に設定しないでください –選択した 'RadioButton'がフォーカスを取得し、同時にCheckedとして設定されるようにしたので、私はこのようにしました。この場合の改善について何をお勧めしますか? – mrisek
ボタンをクリックすると、チェックされ、フォーカスが得られます。あなたのハンドラにある全てを削除してください –