我有一个具有动态字段行为的动态Android表单.
示例:如果用户填充字段A,则显示字段B并隐藏字段C.
我为此使用方法view.setVisibility(View.VISIBLE)和view.setEnabled(boolean).此方法适用于RadioGroup和EditText,但不适用于Spinner组件.
微调器设置为可见,但始终处于禁用状态. .setEnable(true)方法不会产生任何影响.
我需要显示微调器已启用.
如果微调框可见,则setEnabled()起作用.但是,如果微调器是不可见的,则这2个命令不能一起使用.
spinner.setVisibility(View.VISIBLE)
spinner.setEnabled(Boolean.TRUE)
[]的
最佳答案
请提供更多详细信息.以下代码显示了如何显示/隐藏或启用/禁用微调器.
boolean visibility = true;
boolean enabled = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout linearLayout = new LinearLayout(this);
final Spinner spinner = new Spinner(this);
String[] animals = {"cats","dogs","lines","rats"};
spinner.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,animals));
linearLayout.addView(spinner);
Button visiblity = new Button(this);
visiblity.setText("VisibilityButton");
linearLayout.addView(visiblity);
setContentView(linearLayout);
visiblity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(visibility){
spinner.setVisibility(View.INVISIBLE);
visibility = false;
}
else{
spinner.setVisibility(View.VISIBLE);
visibility = true;
}
}
});
Button enabledButton = new Button(this);
enabledButton.setText("EnabledButton");
linearLayout.addView(enabledButton);
enabledButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(enabled){
spinner.setEnabled(false);
enabled = false;
}
else{
spinner.setEnabled(true);
enabled = true;
}
}
});
}