单击复选框

时间:2017-01-25 18:02:22

标签: java android checkbox

我真的不知道怎么说这个。 基本上我有这个方法:

private void uploadFile(int maxSpinner) {
    setContentView(R.layout.upload);

    CheckBox local = (CheckBox) findViewById(R.id.local_checkbox);
    Spinner dropdown = (Spinner)findViewById(R.id.spinner1);

    local.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            checkbox = isChecked;

            if( isChecked){

                uploadFile(6);
                Log.i("checked", "yes");

            }
            else {
                uploadFile(5);
                Log.i("checked", "no");
            }
        }
    });

    ArrayList<String> categories = new ArrayList<>();
    for( int category = 1; category <= maxSpinner+1; category++){
        categories.add(Integer.toString(category));
    }
    ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, categories);
    dropdown.setAdapter(adapter);
    dropdown.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                                   int arg2, long arg3) {
            category = arg2+1;
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });
}

相应的布局文件有一个复选框和一个微调器。

maxSpinner是设置Spinner元素数量的for循环的限制。我想更改maxSpinner,具体取决于是否选中了复选框。

所以在开始uploadFile()以其他方式调用5作为参数。当我点击复选框local时,我想再次调用uploadFile,但这次使用6或再次5作为参数,因此我获得了不同数量的元素对于微调器。

我尝试过的方式如上所示。当我点击复选框时没有任何反应,我可以在日志中看到它总是记录“是”,即使复选框从未真正被明显检查过。

任何帮助将不胜感激,

谢谢

1 个答案:

答案 0 :(得分:0)

抱歉,它确实按预期工作,它只是不更新​​复选框,因为我没有告诉它这样做。