4

Android にラジオ ボタン グループがあります。アイテムが選択されたときにイベントを受け取ります。ここまでは正常。ただし、ユーザーが既に選択されているアイテムをクリックすると、イベントは発生しません。ラジオボタンが選択されているかどうかに関係なく、ユーザーがいつラジオボタンを押したかを知る (イベントを受け取る) 方法はありますか? どうもありがとう。

4

2 に答える 2

4

すでにチェックされているラジオボタンをクリックするとイベントが発生する理由がわかりませんが、ラジオボタンがすでに選択されている場合は、それをクリックして選択を解除したい場合は!! このコードを確認してください。

RadioGroup radioGroup;
RadioButton radioButton1;
RadioButton radioButton2;
RadioButton radioButton3;

boolean hack = false;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    radioGroup = (RadioGroup) findViewById(R.id.rg);
    radioButton1 = (RadioButton) findViewById(R.id.r1);
    radioButton2 = (RadioButton) findViewById(R.id.r2);
    radioButton3 = (RadioButton) findViewById(R.id.r3);

    OnClickListener radioClickListener = new OnClickListener()
    {

        public void onClick(View v)
        {       //The first codition check if we have clicked on an already selected radioButton
            if (v.getId() == radioGroup.getCheckedRadioButtonId() && hack)
            {
                radioGroup.clearCheck();
            }
            else
            {
                hack = true;
            }
        }
    };

    OnCheckedChangeListener radioCheckChangeListener = new OnCheckedChangeListener()
    {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            hack = false;
        }
    };

    radioButton1.setOnCheckedChangeListener(radioCheckChangeListener);
    radioButton2.setOnCheckedChangeListener(radioCheckChangeListener);
    radioButton3.setOnCheckedChangeListener(radioCheckChangeListener);

    radioButton1.setOnClickListener(radioClickListener);
    radioButton2.setOnClickListener(radioClickListener);
    radioButton3.setOnClickListener(radioClickListener);

} 
Hope this wil help
于 2012-05-03T23:35:16.967 に答える
0

ボタンにを設定することOnClickListener()で...

于 2012-05-03T23:19:50.553 に答える