我正在创建一个默认禁用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>
答案 0 :(得分:1)
您没有在微调器上注册监听器。
在你的onCreate
中添加它spinner.setOnItemSelectedListener(this);
然后在onItemSelected中编写代码。