私のアプリは、レストラン サーバーのシフト売上を追跡して、予算を立てるのに役立ちます。過去のシフトを表示するアクティビティでは、ListView の下に RadioGroup を作成して、ユーザーがランチ、ディナー、またはその両方を表示することを選択できるようにしました。
アクティビティ RadioGroup.onCheckedChangeListener に実装しましたが、onCheckedChanged が呼び出されることはありません。また、匿名の内部クラスをリスナーとして使用してみましたが、同じ結果でした。
この回答からコードをコピー/変更しようとしました: https://stackoverflow.com/a/9595528 ...しかし@Override
、コールバック関数に を追加すると、Eclipse コンパイラは、メソッドがしなければならないというエラー (警告ではない) を出しましたスーパークラスをオーバーライドし、迅速な修正はオーバーライドを削除することでした。
署名は Eclipse のオートコンプリートおよび実装メソッド機能で作成されているため、一致していると確信しています。次に、指示に従って Java コンパイラを 1.5 から 1.6 に移行しましたが、上記の動作はどれも変わらないようでした。
関連すると思われるコードは次のとおりです。
public class DataActivity extends ListActivity implements OnCheckedChangeListener{
RadioButton rbBoth;
RadioButton rbDinnerOnly;
RadioButton rbLunchOnly;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.database);
// ...
final RadioGroup rgGroup = (RadioGroup)findViewById(R.id.DataRadioGroup);
rbBoth = (RadioButton)findViewById(R.id.RadioBoth);
rbDinnerOnly = (RadioButton)findViewById(R.id.RadioDinnerOnly);
rbLunchOnly = (RadioButton)findViewById(R.id.RadioLunchOnly);
rgGroup.setOnCheckedChangeListener(this);
populateAllShifts();
}
// ...
public void onCheckedChanged(RadioGroup group, int checkedId) {
rbLunchOnly.setText("Click!");
Toast.makeText(getApplicationContext(), "Lunch Only", Toast.LENGTH_LONG).show();
if(group.getCheckedRadioButtonId() == R.id.RadioBoth){
populateAllShifts();
return;
}
if(group.getCheckedRadioButtonId() == R.id.RadioLunchOnly){
populatLunchShifts();
return;
}
if(group.getCheckedRadioButtonId() == R.id.RadioDinnerOnly){
populateDinnerShifts();
return;
}
}
// ...
}
このクラスにはカスタム アダプターを使用した ListView がありますが、私の理解と XML が正しければ、RadioGroup はリストの外にあるはずです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llDataLayout"
android:weightSum="5"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:orientation="vertical">
<ListView android:layout_weight="4"
android:layout_width="fill_parent"
android:id="@android:id/list"
android:layout_height="wrap_content">
</ListView>
<RadioGroup
android:layout_weight="1"
android:id="@+id/DataRadioGroup"
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<RadioButton android:text="Lunch and Dinner"
android:textSize="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/RadioBoth"/>
<RadioButton android:text="Dinner Only"
android:textSize="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/RadioDinnerOnly"/>
<RadioButton android:text="Lunch Only"
android:textSize="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/RadioLunchOnly"/>
</RadioGroup>
</LinearLayout>
そこに何かアイデアはありますか?