0

我希望这行代码期望 (String, Serializable) 但它期望 (String, boolean) 代替。

intent.putExtra(CheckoutActivity.ZOOZ_INVOICE, invoice);

错误是:

类型意图中的 putExtra(String, boolean) 方法不适用于参数 (String, ZoozInvoice)。

我希望这些参数具有(String,Serializable)签名而不是(String,boolean)。应该是这样的。

CheckoutActivity.ZOOZ_INVOICE = 名称

发票 = 价值

我试过这样写:

intent.putExtra(CheckoutActivity.ZOOZ_INVOICE, invoice(CheckoutActivity.ZOOZ_INVOICE, invoice));

这被 Eclipse 接受,没有错误,也没有编译错误。但是,该代码无法正常工作或按预期工作。

此外,我尝试将“putExtra”更改为“getIntExtra”,但出现此错误:

类型意图中的方法 getIntExtra(String, int) 不适用于参数 (String, ZoozInvoice)。

我还尝试将“发票”的类型更改为“布尔”。这导致:

类型不匹配:无法将 ZoozInvoice 转换为布尔值。

和。

无法在基本类型布尔值上调用 addItem (String, int, double, int, String, String)。

我怎样才能让 Intent 期望 (String, Serializable) 而不是 (String, boolean) ?

供参考和上下文的代码。

ZooZInvoice invoice = new ZooZInvoice();
        invoice.addItem("item1", 1, 0.5, 0, "1", "good choice!");
        invoice.addItem("item2", 1, 3, 0, "2", "additional details for item 2");
        invoice.addItem("item3", 1, 2, 0, "3", "additional details for item 3");
        invoice.addItem("item4", 1, 8, 0, "4", "additional details for item 4");
        invoice.setInvoiceNumber("5512-FA");
        invoice.setInvoiceAdditionalDetails("Power Ups for user 12345");
        intent.putExtra(CheckoutActivity.ZOOZ_INVOICE, invoice);

        startActivityForResult(intent, ZooZ_Activity_ID);
4

2 回答 2

0

我怎样才能让 Intent 期望 (String, Serialization) 而不是 (String, boolean) ?

你不能,因为在 Android(或 Java)中没有名为Serialization.

Serializable,而且如果你创建了一个实现的 Java 类Serializable,你就可以putExtra()Parcelable出于速度原因,这将是一个更好的选择,而ZoozInvoice我可能会做的根本不添加一个额外的。

于 2013-08-04T17:15:26.033 回答
-1
//This is the code from parent Activity which is calling the Intent to happen.


Intent intent = new Intent(this, PassToAnotherActivity.class);
//intent.putExtra("Serializable Key", serializable object);

Employee e=new Employee();
e.setName("Brijesh");
emp.add(e);

intent.putExtra("Employee", emp);

startActivity(i);


// This is the code to accept serializable object/Data in the Called Activity

PassToAnotherActivity.java


public void onCreate(Bundle savedInstanceState)
{

     Bundle bundle = getIntent().getExtras();
     Employee emp = (Employee) bundle.getSerializable("Employee");
     // Display the object
}



I hope this will help u.
于 2013-08-04T17:37:34.673 回答