0

「男性」と「女性」という名前の2つのラジオボタンを持つラジオグループを配置しました...そしてボタン.私が欲しいのは、それらの1つがその特定に関連する名前を押したときですラジオボタンはトーストにする必要があります。以下のように試してみましたが、機能しません:

アクティビティ.java

package com.example.radiobuttondemo;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.Toast;

public class MainActivity extends Activity {
RadioButton rd1,rd2;
Button b;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    rd1=(RadioButton)findViewById(R.id.radio0);
    rd2=(RadioButton)findViewById(R.id.radio1);
    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            if(rd1.isChecked()){
                Toast.makeText(getApplicationContext(), "male", 0).show();
            }
            else{
                Toast.makeText(getApplicationContext(), "Female", 0).show();
            }


        }
    });
    }



}
4

4 に答える 4

1

Buttonbを初期化するのを忘れました。

したがって、 を実行しているときb.setOnClickListener、プログラムは をスローしNullPointerExceptionてアプリを閉じます。

于 2013-05-01T16:17:54.767 に答える
0

個人的には、ラジオ ボタンには常に RadioGroup を使用しています。それを使用しなかった場合、他のラジオ ボタンをオンにしたときに、1 つのラジオ ボタンをオフにしたことがどのようにわかりますか?

http://www.mkyong.com/android/android-radio-buttons-example/を参照してください。

通常のチェックボックスを扱っている場合、あなたのアプローチはうまくいくと思います。通常のチェックボックスは、その兄弟について知る必要はありません。

于 2013-05-01T16:16:02.433 に答える
0

RadioButton グループ自体に対してチェックを行います。

switch (radioGroup.getCheckedRadioButtonId()) {
            case rd1:
                     Toast.makeText(getApplicationContext(), "male", 0).show();
                     break;
            case rd2:
                     Toast.makeText(getApplicationContext(), "Female", 0).show();
                     break;
)
于 2013-05-01T16:28:22.097 に答える
0

ボタンを MainActivity クラスの Button オブジェクト (名前は b) にバインドする必要があります。b にはアクション リスナーがありますが、b はバインドされていません...

于 2013-05-01T16:17:56.553 に答える