这是我为项目分配数据的类之一,它将一个参数返回给另一个类。我应该怎么写它来返回两个参数呢?对于这种情况,它返回最终价格,我应该如何写它以返回最终价格和小计?
public static String Final_Price = " ";
public static String subtotal = " ";
protected String doInBackground(String... arg0) {
Final_Price = co.price;
subtotal = co.subtotal;
return Final_Price;
}
@Override
protected void onPostExecute(String result){
String search = Final_Price;
((ReceiptActivity)activity).get_data(search);
}
这是收据活动,其中有一个函数来获取我传递的数据。
public void get_data (String c)
{
shippingfeeTextView.setText("Shipping fee: " + c);
}
答案 0 :(得分:1)
如果您只想要两个参数,可以使用Pair
。资料来源:http://developer.android.com/reference/android/util/Pair.html
答案 1 :(得分:0)
您可以像这样创建自己的自定义对象
public class Result{
public String finalPrice, subTotoal;
public Result(String st, String fp) {
this.subTotal= st;
this.finalPrice= fp;
}
}
然后您可以返回Result对象
Result res = new Result (x, y);
return res
答案 2 :(得分:0)
您可以将其作为数组,对象返回,也可以创建模型并将模型作为参数传递。
答案 3 :(得分:0)
假设您想要的两个返回值是相同的数据类型,那么最好不要过度思考。 只需返回一个简单的数组:
double[] finalPrice = new double[2];
finalPrice[0] = co.price;
finalPrice[1] = co.subtotal;
return finalPrice;
或者如果你需要保留一个字符串:
String[] finalPrice = new String[2];
finalPrice[0] = ""+co.price;
finalPrice[1] = ""+co.subtotal;
return finalPrice;
这是处理返回多个值的最简单,最有效的方法。 使用你的数组也很简单:
public void get_data (String[] c)
{
shippingfeeTextView.setText("Shipping fee: " + c[0]+"subtotal: "+c[1]);
}
如果值是不同的数据类型,只需使用适当的字段,getter / setter创建一个封装的数据类,并返回它的构造函数:
return new CustomContainer(myDouble, anInteger);
你的get方法看起来像这样:
public void get_data (CustomContainer c)
{
shippingfeeTextView.setText("Shipping fee: " + c.getSalePrice()+"subtotal: "+c.getSubTotal());
}