2015-11-25 3 views
-1

У меня есть метод во Фрагменте, который принимает значение из количества Spinner и возвращает его. Где можно получить значение этой переменной? Если я хочу полностью перенести его на новую активность, как ее получить?Перемещение возвращаемых переменных между классами

public String SetupQuantitySpinner(String[] quantity) { 
    Spinner spnr2; 
    spnr2 = (Spinner)view.findViewById(R.id.spinner_quantity); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
      getActivity(), 
      R.layout.custom_spinner, 
      R.id.text_main_seen, 
      quantity); 
    spnr2.setAdapter(adapter); 
    return quantity[spnr2.getSelectedItemPosition()]; 
} 

В основном Spinner представляет собой количество товара, что пользователь решил приобрести, т.е. 1 до 20 рубашек. Теперь я должен умножить это значение на его стоимости, но стоимость извлекается в другой деятельности в целом:

String cost = currentProduct.getCost(); 

Мне нужно отправить quantity[spnr2.getSelectedItemPosition()] на эту новую операцию, так что я могу умножить его на currentProduct.getCost();

Как могу ли я это сделать?

Редактировать: Это другое и, следовательно, не дубликат, потому что я хочу отправлять и извлекать данные, связанные с выбранным элементом Spinner.

ответ

3

Если вы хотите получить только выбранный элемент в другом действии, вы можете просто поместить этот код в метод onItemSelected. И получить значение дополнительного в этом действии.

String item = mSpinner.getSelectedItem().toString(); 
Intent intent = new Intent(this,NextActivity.class); 
intent.putExtra("item",item); 
startActivity(intent); 
0

Это еще один способ сделать это. Написать глобальную переменную:

public final static String PRODUCT_SIZE_MESSAGE = "com.elgami.customizer.PRODUCT_SIZE"; 

Начните Intent, где вы хотите, чтобы в вашем коде:

Intent intent; 
intent.putExtra(MainActivity.PRODUCT_QUANTITY_MESSAGE, productQuantity); 
startActivity(intent); 

Ставишь переменную, которую вы хотите отправить вместе с вашим Intent в Экстра, а затем получить его в новом классе следующим образом:

private int getIntentMessageProductQuantity() { 
    return getIntent().getIntExtra(MainActivity.PRODUCT_QUANTITY_MESSAGE, 0); 
} 

Теперь у вас есть переменная, и вы можете использовать его в качестве параметра в любом методе в новом классе, например, так:

public void LaunchPurchaseIntent(MainActivity.ProductType productType, int productSize, int productQuantity, String uuid) throws ParseException { 
    // Do what you want here 

} 
Смежные вопросы