如何在setArgument中设置为serialazble with error

时间:2014-01-28 08:16:46

标签: android

我想在serialazble

制作此代码

但我知道为什么, 在setArguments中,有一个红色下划线,因此无法运行代码。

有人可以指导我吗?

     public void summaryClick (View v)
{
    Intent sum = new Intent(this, summary.class);
    fuelLogPojo clickedObject = pojoArrayList.get(0);
    Bundle dataBundle = new Bundle();
    dataBundle.putString("clickedID", clickedObject.getid());
    dataBundle.putString("clickedDate", clickedObject.getdate());
    dataBundle.putString("clickedPrice", clickedObject.getprice());
    dataBundle.putString("clickedPump", clickedObject.getpump());
    dataBundle.putString("clickedCost", clickedObject.getcost());
    dataBundle.putString("clickedOdometer", clickedObject.getodometer());
    dataBundle.putString("clickedpreOdometer",
            clickedObject.getpreodometer());
    dataBundle.putString("clickedFCon", clickedObject.getfcon());
    dataBundle.putSerializable("pojoArrayList", pojoArrayList);

    Log.i("FuelLog", "dataBundle " + dataBundle);
    // Attach the bundled data to the intent
//  sum.putExtras(dataBundle);
    sum.setArguments(dataBundle);
    // Start the Activity
    startActivity(sum);


}

从这里参考 passing a list of data from one intent to another using serializable

4 个答案:

答案 0 :(得分:3)

Intent类在android上没有setArguments函数。

here上查看。

答案 1 :(得分:0)

您不会将任何变量声明为bundle。您的Bundle被称为dataBundle

更改此行:

sum.setArguments(bundle);

为:

sum.putExtra("my data bundle", dataBundle);

答案 2 :(得分:0)

为什么你认为一个Intent(这里总结)有一个方法“setArguments”? 据我所知,setArgument是一种“片段”的方法。 如果要将bundle设置为Intent,请尝试“putExtras”。

答案 3 :(得分:0)

用以下代码替换红线:

sum.putExtras(dataBundle);

Intent没有名为setArguments(Bundle bundle)的函数。请查看文档here

有关完整示例,请查看this帖子。