方法中的putExtra(String,boolean)方法不适用于参数(String,CarouselDataItem)

时间:2014-04-15 12:01:02

标签: java android android-intent

我在eclipse中发现错误

"The method putExtra(String, boolean) in the type Intent is not applicable for the arguments (String, CarouselDataItem)"

如何避免这种情况?我试图在Android中实现图像轮播,但我似乎无法避免这个问题。我已经尝试将文档类型更改为布尔值 - 但这只会导致更多问题。

非常感谢任何建议。

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
         CarouselDataItem docu =  (CarouselDataItem) m_carouselAdapter.getItem((int) arg3);

            Intent intent = null;

            if (docu .equals("John F. Kennedy"))
                intent = new Intent (MainActivity.this, Audio.class);
            if (docu .equals("Lyndon B. Johnson"))
                intent = new Intent (MainActivity.this, Video.class);
            if (docu .equals("Richard Nixon"))
                intent = new Intent (MainActivity.this, Photos.class);
            if (docu .equals("Gerald Ford"))
                intent = new Intent (MainActivity.this, Written.class); 
            if (intent != null) {
                intent.putExtra("KEY", docu );
                startActivity(intent);
            }
        };

    public void onNothingSelected(AdapterView<?> arg0) {}

}

2 个答案:

答案 0 :(得分:2)

  

非常感谢任何建议。

您正在尝试通过Activity传递自定义对象。在这种情况下,您希望在活动之间传递的任何类型的对象都必须实现ParcelableSerializable接口。

Serializable更容易实现,但Parcelable是官方推荐的。您可以找到更多信息in this thread

答案 1 :(得分:0)

您无法使用docu调用putExtra,因为docu的类型为CarouselDataItem,并且Intent中没有名为putExtra的方法,其参数为String和CarouseldataItem。相反,让CarouselDataItem扩展Parcelable,使其能够在活动之间发送。

有关好的例子,请参阅this blogpost about parcelable