2017-12-02 13 views
-3

회 사용으로 setOnItemSelectedListener를 사용하면 오류가 발생합니다. 이 내 코드입니다 :Erro "setOnItemSelectedListener"를 회 전자에 사용하는 경우

public class FragmentAdd extends Fragment { 
    private Spinner spinnerProvince; 
    @Override 
    public void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     spinnerProvince = (Spinner) getActivity().findViewById(R.id.spinner_province); 
     spinnerProvince.setOnItemSelectedListener(new OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 

      } 

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

      } 
     }); 

     return inflater.inflate(R.layout.fragment_add,container,false); 

    } 
} 

오류 :이 문제를 해결할 수있는 방법을

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setOnItemSelectedListener(android.widget.AdapterView$OnItemSelectedListener)' on a null object reference 

.

+0

하십시오 [편집] 질문을 시도해야한다. 액티비티 레이아웃에서 뷰를 찾았을 때 조각을 사용하는 특별한 이유가 있습니까? –

답변

1

먼저보기를 팽창하고 팽창보기에 바인딩 ID가 당신의 XML 레이아웃을 포함하려면이

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View root = inflater.inflate(R.layout.fragment_add,container,false); 
    spinnerProvince = (Spinner) root.findViewById(R.id.spinner_province); 
    spinnerProvince.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 

     } 

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

     } 
    }); 

    return root; 

} 
+1

글쎄, 이것은 ID가 XML의 일부라고 가정합니다. –