2017-04-07 5 views
-1
private Spinner spinnerMonth; 

public View onCreateView(LayoutInflater inflater 
     , @Nullable ViewGroup container 
     , @Nullable Bundle savedInstanceState) { 
    super.onCreateView(inflater, container, savedInstanceState); 
    _view = inflater.inflate(R.layout.fragment_spinnerMonth, container, false); 
    // Month 
    spinnerMonth = (Spinner) _view.findViewById(R.id.spinnerMonth); 
    spinnerMonth.setAdapter(monthAdapter); 
    spinnerMonth.setSelection(_selectedMonth - 1); 
    return _view; 
} 

private void saveData() { 
    spinnerMonth.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
     Log.d("month",i);   
     } 

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

私のコードは動作しません。グローバルSpinnerを決定した場合、onItemSelectedは機能しません。私が地元スピナーを決めたら、それは仕事です。なぜこれが起こるのですか?グローバルスピナーが必要です。スピナーonItemSelectedは、上記

+0

onActivity内部の書き込みスピナーonitemclicklistner SaveDataを()が実行されます場合は方法 – Redman

+0

を作成しましたか? – ViramP

+1

ビンゴ主な問題は 'ます。private void SaveDataを()' onCreateViewでこのコードを入れて... LISTNERは、あなたがメソッドをしたいならば、あなたのコードが動作しているonCreateView –

答えて

0

AdapterView.OnItemSelectedListenerインターフェースと対応onItemSelected()コールバックメソッドを実装し、スピナーの選択イベントハンドラを定義する溶液

public View onCreateView(LayoutInflater inflater 
     , @Nullable ViewGroup container 
     , @Nullable Bundle savedInstanceState) { 
    super.onCreateView(inflater, container, savedInstanceState); 
    _view = inflater.inflate(R.layout.fragment_spinnerMonth, container, false); 
    // Month 
    spinnerMonth = (Spinner) _view.findViewById(R.id.spinnerMonth); 
    spinnerMonth.setAdapter(monthAdapter); 
    spinnerMonth.setSelection(_selectedMonth - 1); 
    spinnerMonth.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
     Log.d("month",i);   
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 
     } 
    }); 
    return _view; 
} 
+0

内のこのメソッドを呼び出すが、私..方法で上のビューを作成する上で設定する必要がありますクリックして保存ボタンを押すと、setOnItemSelectedListenerがトリガされる必要があります。それがうまくいかない理由です。 –

+0

@mute_personまだスピナーはグローバルです.OKはonCreateメソッドでSavedata()を呼び出すだけです –

0

を探します。

spinner.setOnItemSelectedListener(new OnItemSelectedListener() 
    { 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
     { 
      String selectedItem = parent.getItemAtPosition(position).toString(); 

     } // to close the onItemSelected 
     public void onNothingSelected(AdapterView<?> parent) 
     { 

     }   
    }); 

https://developer.android.com/guide/topics/ui/controls/spinner.html