2017-12-02 22 views
-3

スピナーでsetOnItemSelectedListenerを使用するとエラーが発生します。 これは私のコードです:スピロで「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の一部であることを前提としています –

関連する問題