0

RadioGroup の onCheckedChanged リスナーを作成しようとしていますが、Eclipse でエラーが発生します。これがコードです

rg = (RadioGroup) findViewById(R.id.radioGroup1);

rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        Log.d("chk", "id" + checkedId);

        if (checkedId == R.id.switchToFriends) {
            // some code
        } else if (checkedId == R.id.switchToUsers) {
            // some code
        }
    }
});

そして、EclipseからsetOnCheckedChangeListener、setOnClickListener/setOnDragListenerなどに変更することを提案するとエラーが発生します。
そのnew OnCheckedChangeListener()上で、実装されていないメソッドを追加するように指示され、そのオプションを選択すると、これが追加されます:

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    // TODO Auto-generated method stub

}

だから私はこれで終わります:

rg = (RadioGroup) findViewById(R.id.radioGroup1);

rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        Log.d("chk", "id" + checkedId);

        if (checkedId == R.id.switchToFriends) {
            // some code
        } else if (checkedId == R.id.switchToUsers) {
            // some code
        }
    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        // TODO Auto-generated method stub

    }
});

@Overrideそして、私が書いたメソッドから注釈を削除するように指示されます。
メソッドをそのようにオーバーライドできない理由を誰かが知っていますか? Android ドキュメントを確認しましたが、そこに表示されるメソッドは、オーバーライドしようとする形式を使用しています

4

3 に答える 3

5

ClassName を使用してリスナーを直接追加できます

 radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // TODO Auto-generated method stub

        }
    });

たとえば、CompoundButton と関連付けられた OnCheckedChangeListener を既に使用している場合、RadioGroup クラスをインポートすることはできませんが、このソリューションを使用して直接アクセスすることはできます。

于 2013-10-29T09:46:16.107 に答える
3

正しいパッケージをインポートしたことを確認してimport android.widget.RadioGroup.OnCheckedChangeListener;ください@Override

于 2013-10-29T09:44:14.257 に答える