我在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) {}
}
答案 0 :(得分:2)
非常感谢任何建议。
您正在尝试通过Activity传递自定义对象。在这种情况下,您希望在活动之间传递的任何类型的对象都必须实现Parcelable或Serializable接口。
Serializable更容易实现,但Parcelable是官方推荐的。您可以找到更多信息in this thread。
答案 1 :(得分:0)
您无法使用docu调用putExtra,因为docu的类型为CarouselDataItem,并且Intent中没有名为putExtra的方法,其参数为String和CarouseldataItem。相反,让CarouselDataItem扩展Parcelable,使其能够在活动之间发送。
有关好的例子,请参阅this blogpost about parcelable。