0

replace를 사용하여 하나의 프래그먼트 만 활동에 첨부했습니다. 장치가 몇 초 후에 화면을 잠그고 잠금을 해제하면 조각보기 (EditTexts 등) 및 선택한 회 전자 항목이 동일하게 유지 되더라도 일부 회 전자에 지정된 onItemSelected 메서드가 실행됩니다.잠긴 화면에서 돌아올 때 onItemSelected가 실행되지 않게하는 방법

public class MyFragment extends Fragment { 

    private Spinner mySpinner; 

    public static MyFragment newInstance() { 
     return new MyFragment(); 
    } 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.some_layout, container, false); 

     mySpinner = (Spinner)view.findViewById(R.id.my_spinner); 

     List<String> items = new ArrayList<>(); 
     items.add("Anything"); 
     items.add("Anything"); 
     items.add("Anything"); 

     ArrayAdapter<String> adapter = 
       new ArrayAdapter<String>(
         getContext(), 
         android.R.layout.simple_spinner_item, 
         items); 

     mySpinner.setAdapter(adapter); 

     mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       Toast.makeText(getContext(), "Hello World", Toast.LENGTH_LONG).show(); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parent) { 

      } 
     }); 

     return view; 
    } 

    @Override 
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
    } 

} 

나는 토스트 메시지에 "Hello World"(또는 리스너에 할당 된 다른 방법 또는 조치)를 얻을 항목을 선택 때마다,하지만 장치 잠금 및 다음 내가 잠금을 해제 할 때, 나는 아직도 받고 있어요 마치 onItemSelected 메소드가 호출 된 것처럼 메시지.

나는 boolean과 Fragment의 onSaveInstanceState 및 onActivityCreated 메소드를 사용하고 있지만, 잠긴 화면에서 디바이스가 반환 될 때 onItemSelected 메소드가 실행되는 것을 막을 수있는 방법을 찾지 못했습니다.

+0

을 참조 mySpinner.setSelection(position, false) 전에 넣어하는 것입니다, Spinner가 초기화 된 후 onItemSelected가 호출 될 것입니다? 스피너가 궁극적으로 단지 토스트를 내기를 원하지는 않을 것입니다. 나중에 사용하기 위해 어떤 가치를 설정할 것입니다. 예 : 당신은'myspinnerselecteditem = my.Spnner.getSecltedItem()'과 같은 것을 할 것입니다. 어떤 경우에는 여러 번 설정해야할까요? – MikeT

+0

예, 선택한 항목에 따라 회 전자의 동작이 다르지만 잠긴 화면에서 돌아올 때 onItemSelected가 실행된다는 문제가 있으므로 중요하지 않습니다. – FerDensetsu

답변

0

문제는 해결책은 당신이해야합니까 mySpinner.setOnItemSelectedListenerthis