2013-05-05 2 views
0

기본적으로 사용하지 않도록 설정된 onMreate에서 만든 mainMenuButton 단추가있는 프로그램을 만듭니다. 사용자는 먼저 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으로 바꾸려고 시도했지만 mainMenuButton을 사용할 수 없었습니다. 스피너에서 무언가가 선택된 후에 버튼을 사용하려면 정확히 무엇을해야합니까?

또한 체크 박스를 구현하는 데 큰 차이가 있습니까?

EDIT2 :

나는 경우와 다른 문을 주석으로 경우, 버튼을 영구적으로 비활성 상태를 유지합니다. 내가 떠날 경우, 버튼은 결코 사용 중지되지 않으며 절대로 사용할 수 없게됩니다. 나는 회 전자를 건드리지 않았기 때문에 이해할 수 없으므로 기본적으로 비활성화되어야합니다.

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

'setClickable (true)' – krikara

+0

디버그를 수행하지 못했고 콜백 메소드가 트리거되었는지 확인하십시오. – stinepike

답변

1

당신은 회 전자에 리스너를 등록하지했습니다이이 영향을 미치지 만 스피너 문자열이 같은 포맷 한 경우

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); 
    } 


} 

임 확실하지.

spinner.setOnItemSelectedListener(this); 

당신의에서 onCreate

이 추가하고 onItemSelected 당신에게 코드를 작성합니다.

+0

게시물을 업데이트했습니다. 비록 코드 줄 덕분에 한 걸음 더 가까워졌지만 그래도 여전히 사용할 수 없게 설정되어 있지 않습니다. – krikara

+0

! = !!를 사용하여 두 개의 문자열을 비교하고 있습니다. if (buildingString! = "Select Building")에서 if (! buildingString.equals ("Select Building"))로 변경하십시오. – bakriOnFire

관련 문제