0

我正在创建一个默认禁用 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);
    }

但无济于事。我也试过用 替换ViewButton但这也没有启用 mainMenuButton。选择微调器上的某些内容后,我究竟应该怎么做才能启用按钮?

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

编辑2:

如果我注释掉 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>
4

1 回答 1

1

您尚未在微调器上注册侦听器。

将此添加到您的 onCreate

spinner.setOnItemSelectedListener(this);

然后在 onItemSelected 中编写代码。

于 2013-05-05T05:12:08.043 回答