我真的不知道怎么说这个。 基本上我有这个方法:
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
作为参数,因此我获得了不同数量的元素对于微调器。
我尝试过的方式如上所示。当我点击复选框时没有任何反应,我可以在日志中看到它总是记录“是”,即使复选框从未真正被明显检查过。
任何帮助将不胜感激,
谢谢
答案 0 :(得分:0)