如何在布局中禁用按钮时以编程方式启用按钮

时间:2017-10-22 05:28:51

标签: java android arrays android-arrayadapter

我是Android新手,我不太了解它。对于练习,我使用微调器,按钮及其属性进行操作。

我有4个微调器,第一个微调器决定第二个微调器值,依此类推。我有一个位于第4个微调器下方的按钮(android:enabled =" false"在xml中),它有一个点击监听器,它的点击事件显示你在所有微调器中选择的东西。

所有微调器的值都在字符串数组中,我想检查并验证所有微调器。如果没有选择任何微调器的第一个数组索引,那么将启用按钮,否则将被禁用。

我已多次尝试,但没有得到预期的结果。任何人都可以帮忙解决我的问题吗?

这是我的按钮和微调器验证代码:

public boolean isDefaultValue(Spinner spinner){
    if (spinner.getSelectedItemPosition() == 0){
        resultButton.setEnabled(false);
    } else {
        resultButton.setEnabled(true);
    }
    return false;
}
‎
resultButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (isDefaultValue(sp4)) {
                Toast.makeText(getApplicationContext(), "Country : " + sp1.getSelectedItem().toString() + "\n" +
                        "State : " + sp2.getSelectedItem().toString() + "\n" +
                        "City : " + sp3.getSelectedItem().toString() + "\n" +
                        "Area : " + sp4.getSelectedItem().toString(), Toast.LENGTH_LONG).show();
            }
}
 });

1 个答案:

答案 0 :(得分:0)

您的方法isDefaultValue(Spinner)将始终返回false,无论是否启用按钮,因此永远不会举起祝酒词。

此外,您的描述如下:

  

如果未选择任何微调器,则第一个数组索引将启用按钮

但是根据方法isDefaultValue(Spinner),只有当微调器不在数组(0)的第一个索引中时,才会启用该按钮。