2013-05-05 60 views
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); 
    } 

,但无济于事。我也尝试用Button代替View,但是这并没有启用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

'setClickable(true)'没有工作 – krikara 2013-05-05 01:00:24

+0

调试并检查回调方法是否触发 – stinepike 2013-05-05 04:15:00

回答

1

你没有登记在微调的监听器。

在你的onCreate

spinner.setOnItemSelectedListener(this); 

添加这,然后写你onItemSelected代码。

+0

我更新了帖子。它仍然不会禁用和正确启用,尽管感谢这一行代码让我更靠近一步。 – krikara 2013-05-05 06:58:07

+0

你正在比较两个字符串使用!=! if(buildingString!=“Select Building”)if(!buildingString.equals(“Select Building”)) – bakriOnFire 2013-05-05 07:50:05