在类之间移动返回变量

时间:2015-11-25 02:04:47

标签: java android variables android-spinner

我在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项目相关联的数据。

2 个答案:

答案 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

}