0

오랫동안 생각해 왔지만 실제로 문제가 무엇인지 파악할 수 없습니다. 첫 번째 코드 조각은 내 활동 중 하나에서 작동합니다. selectedUser는 전 세계적으로 선언되어 있으므로 어디에서나 사용할 수 있습니다.Spinner onItemSelected의 전역 변수가 작동하지 않습니다.

 spUsers.setAdapter(new MyAdapter(this, R.layout.user_sp_row,userArray)); 
    spUsers.setOnItemSelectedListener(new OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
      int index = spUsers.getSelectedItemPosition(); 
      selectedUser = userList.get(index).get(Constants.TAG_UNAME); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parentView) { 
      selectedUser = ""; 
     } 

    }); 

이 코드는 내가 작성한 다른 코드와 똑같지 만 작동하지 않습니다. selectedCat도 전역 적으로 선언됩니다. 것은 값이 onItemSelected 메소드에서 설정되지만 메소드를 종료하자 마자 selectedCat는 빈 문자열입니다.

 spCat.setAdapter(new MyAdapter(this, R.layout.category_sp_row,tempArray)); 
    spCat.setOnItemSelectedListener(new OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
      int index = spCat.getSelectedItemPosition(); 
      selectedCat = categoryList.get(index).get(Constants.TAG_UPID); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parentView) { 
      selectedCat = ""; 
     } 

    }); 
+0

"곧 방법을 떠난다"는 의미는 무엇입니까? selectedCat로 무엇을하려고합니까? – DrkStr

+0

내가 넣을 때 bt91.setText (selectedCat); onItemSelected 메서드에서는 selectedCat에 포함해야하는 텍스트를 표시하지만 그 뒤에 넣으면}}; 또는 내 코드의 다른 곳에서는 텍스트가 표시되지 않습니다. – Medes

+0

selectedCat = ""을 제거하십시오. 그게 효과가 있는지 봅시다. – DrkStr

답변

0

저는 실제로 setOnItemSelectedListener()에서 수행해야하는 모든 작업을 수행하여이 작업을 수행했습니다.

Ty DrkStr

0

나는 왜 onItemSelected() 메소드로 제공되는 위치의 정수를 사용할 수있을 때 인덱스를 얻을 수 int index = spUsers.getSelectedItemPosition();를 사용하는 모른다.

+0

그건 사실이야.하지만 나는이 일을하기 위해 저글링을하고 있었다. :) – Medes

관련 문제