如何在使用微调器后启用按钮

时间:2013-05-05 00:49:11

标签: android

我正在创建一个默认禁用mainMenuButton按钮(在onCreate中创建)的程序。 在mainMenuButton按钮启用之前,用户首先必须检查几个框并从微调器中选择一些内容。目前,我甚至无法在使用微调器后启用按钮。

我试过了两次

 @Override
    public void onClick(View v) 
    {
     switch(v.getId())
      {

      case R.id.main_menu_button:
          openMainMenu();
          break;

      case  R.id.building_spinner:
          Button mainMenuButton=(Button)findViewById(R.id.main_menu_button); 
          mainMenuButton.setEnabled(true);
          break;
      }
    }

    public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
    {
        View mainMenuButton=(View)findViewById(R.id.main_menu_button); 
        mainMenuButton.setEnabled(true);
    }

但无济于事。我也尝试用View替换Button,但这也没有启用mainMenuButton。在选择了微调器上的某些东西后,我应该怎么做才能启用按钮?

另外,为复选框实现它会有很大的不同吗?

EDIT2:

如果我注释掉if和else语句,该按钮将永久禁用。如果我按原样离开,按钮永远不会被禁用,从不禁用,我不明白,因为我甚至没有触及微调器,所以默认情况下应禁用它。

public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{

    String buildingString = parent.getItemAtPosition(position).toString();
    if(buildingString !="Select Building")
    {
        Button mainMenuButton=(Button)findViewById(R.id.main_menu_button); 
        mainMenuButton.setEnabled(true);
    }
    else
    {
        Button mainMenuButton=(Button)findViewById(R.id.main_menu_button); 
        mainMenuButton.setEnabled(false);
    }


}

我不确定这是否会影响它,但是微调器字符串的格式如下:

<string-array name="building_array">
        <item>Select Building</item>

1 个答案:

答案 0 :(得分:1)

您没有在微调器上注册监听器。

在你的onCreate

中添加它
spinner.setOnItemSelectedListener(this);

然后在onItemSelected中编写代码。