0
フラグメントのメニューでスピナーを使用しています。そのデータをonCreateViewに読み込みます。アプリが起動するとうまくいきますが、ユーザーが別のフラグメントに移動して戻ったり、次回にアプリを開いたりすると、スピナーが消えます。setOnItemSelectedListenerは、アプリケーションが初めて起動されたときにのみ動作するようです。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
setHasOptionsMenu(true);
getSpinnerValues(); //string request to add values to TrailList
}
@Override // ...
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.map_menu, menu);
super.onCreateOptionsMenu(menu, inflater); //temp
//setData();
final MenuItem item = menu.findItem(R.id.trailfiller);
mySpinner = (Spinner) MenuItemCompat.getActionView(item);
ArrayAdapter<Trail> adapter = new ArrayAdapter<Trail>(getContext(), android.R.layout.simple_spinner_dropdown_item, TrailList);
mySpinner.setAdapter(adapter);
mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Trail country = (Trail) parent.getSelectedItem();
Toast.makeText(getContext(), ""+country.getId()+""+country.getName(), Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
それが消えた瞬間、onItemSelectedは注意すべきトリガeither.Strangeのものは値がハードコードされている場合、スピナーは一貫しているで取得されていません。私はここで何が欠けていますか?