复选框项添加到微调器

时间:2015-10-15 03:02:56

标签: java android checkbox spinner

我有两个复选框,当选中一个复选框项时,它应该被添加到微调器。有可能这样做吗?无法在谷歌上找到它,所以希望有人可以救我在这里:) 我的微调器:

public class Checkbox extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_checkbox);

    Spinner spinner;
    spinner = (Spinner) findViewById(R.id.spinner2);
    ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.itinerary, android.R.layout.simple_spinner_item);
    spinner.setAdapter(adapter);

}

布局

<CheckBox
    android:id="@+id/cbSiargao"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Surigao"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="104dp" />

<Spinner
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/spinner2"
    android:layout_alignTop="@+id/cbSiargao"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="139dp"
    android:layout_marginStart="139dp" />

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Boracay"
    android:id="@+id/checkBox"
    android:layout_below="@+id/cbSiargao"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

1 个答案:

答案 0 :(得分:0)

您需要重新实现您的微调器适配器。这是一个简单的例子:

public class SpinnerAdapterExample implements SpinnerAdapter {
    public ArrayList<String> items = new ArrayList<>();

@Override
public int getCount() {
    return items.size();
}

@Override
public View getView(int position, View parent, ViewGroup viewGroup) {
    TextView textView = new TextView(parent.getContext());
    textView.setText(items.get(position));
    return textView;
}

不要忘记重新实现其他必需的方法,但您可以保留原样。

在复选框类中添加以下内容:

SpinnerAdapterExample adapter = new SpinnerAdapterExample();
spinner.setAdapter(adapter);

然后,无论何时需要向spinner添加内容,请编写以下代码:

adapter.items.add("new item");
spinner.notifyOnDatasetChanged();