2015-11-21 2 views
0

Я звоню Spinner со следующей строкой [] массив:Не может getSelectedItem() из текста Spinner

String[] quantity = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"}; 
    SetupQuantitySpinner(quantity); 

Это мой счетчик, который держит String [] массив выше:

public void SetupQuantitySpinner(String[] quantity) { 
    Spinner spnr; 
    spnr = (Spinner)view.findViewById(R.id.spinner_quantity); 
    String productQuantity = spnr.getSelectedItem().toString(); 
    System.out.println(productQuantity); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
      getActivity(), 
      R.layout.custom_spinner, 
      R.id.text_main_seen, 
      quantity); 
    spnr.setAdapter(adapter); 
} 

Почему я не могу получить выбранное значение из Spinner? Это приводит к тому, что моя виртуальная машина рушится без каких-либо других объяснений. Spinner работает, потому что, если я удалю строку getSelectedItem(), все будет хорошо.

+1

вы вызываете getSelectedItem() перед установкой адаптера TOT кок что вы получаете nullpointereception –

ответ

2

Потому что, когда вы звоните getSelectedItem, вы havn't установить адаптер для блесны already.So вы должны назвать это после того, как setAdapter .like это:

public void SetupQuantitySpinner(String[] quantity) { 
Spinner spnr; 
spnr = (Spinner)view.findViewById(R.id.spinner_quantity); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
     getActivity(), 
     R.layout.custom_spinner, 
     R.id.text_main_seen, 
     quantity); 
spnr.setAdapter(adapter); 
spnr.setSelection(0); 
String productQuantity = quantity[spnr.getSelectedItemPosition()]; 
System.out.println(productQuantity); 
} 
+0

Почему он продолжает печатать «[email protected]»? Должен ли я делать что-то подобное? System.out.println (Double.parseDouble (productQuantity)); – santafebound

+0

Когда вызывается 'getSelectedItem', он возвращает текущий выбранный элемент. Если вы хотите получить строку массива, вызовите' getSelectedItemPosition() ', мой ответ обновлен. – starkshang