我在Fragment中有一个方法,它接受一个数量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项目相关联的数据。
答案 0 :(得分:3)
如果您只想检索另一个活动中的选定项目,那么您只需将此代码放在onItemSelected
方法中即可。并检索该活动中额外的值。
String item = mSpinner.getSelectedItem().toString();
Intent intent = new Intent(this,NextActivity.class);
intent.putExtra("item",item);
startActivity(intent);
答案 1 :(得分:0)
这是另一种方法。写一个全局变量:
public final static String PRODUCT_SIZE_MESSAGE = "com.elgami.customizer.PRODUCT_SIZE";
在代码中的任意位置启动您的意图:
Intent intent;
intent.putExtra(MainActivity.PRODUCT_QUANTITY_MESSAGE, productQuantity);
startActivity(intent);
您将要发送的变量与Intent一起放入Extra中,然后在新类中检索它,如下所示:
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
}