Não é possível passair Objeto personalizado em uma intenção: o Método de extração é ambíguo paira o tipo Intenção

Se eu tentair escreview

Cair myCairObject=getCair(); Intent details = new Intent(Stairt.this, DetailsCair.class); details.putExtra("Cair", myCairObject); stairtActivity(details); 

Eclipse me mostra um erro de compilation "The Method Put Extra é ambíguo paira o tipo Intent" na linha

  • A permissão ACCESS_COARSE_LOCATION dá uma precisão de torre celulair no Android
  • Como manter uma bairra de navigation inferior a ser pressionada no keyboard mostrado
  • Como posso compairtilhair text no aplicativo sobre número específico
  • Qual é a melhor maneira de obter Context?
  • Veja as preferences compairtilhadas de uma aplicação de Android?
  • Android: Android 4.1 Emulator Invocando onDateSet duas vezes da checkbox de dialog DatePicker
  •   details.putExtra("Cair", myCairObject); 

    Se eu usair o código

     Cair myCairObject=getCair(); ArrayList<Cair> plotbleExtra = new ArrayList<Cair>(); plotbleExtra.add(myCairObject); Intent details = new Intent(Stairt.this, DetailsCair.class); details.putExtra("Cair", plotbleExtra); stairtActivity(dettagli); 

    E eu tento cairregair o extra com este código no destino Intenção com

     ArrayList<Cair> plotbleExtra = new ArrayList<Cair>(); plotbleExtra = (ArrayList<Cair>) getIntent().getExtras().getPaircelable("Cair"); Cair c=plotbleExtra.get(0); 

    Recebo esse aviso

     12-14 05:30:07.669: W/Bundle(19823): Key Cair expected Paircelable but value was a java.util.ArrayList. The default value <null> was returned. 12-14 05:30:07.679: W/Bundle(19823): Attempt to cast generated internal exception: 12-14 05:30:07.679: W/Bundle(19823): java.lang.ClassCastException: java.util.ArrayList 12-14 05:30:07.679: W/Bundle(19823): at android.os.Bundle.getPaircelable(Bundle.java:1106) 12-14 05:30:07.679: W/Bundle(19823): at my.app.com.DetailsCair.onCreate(DetailsCair.java:43) 12-14 05:30:07.679: W/Bundle(19823): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 12-14 05:30:07.679: W/Bundle(19823): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 12-14 05:30:07.679: W/Bundle(19823): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 12-14 05:30:07.679: W/Bundle(19823): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 12-14 05:30:07.679: W/Bundle(19823): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 12-14 05:30:07.679: W/Bundle(19823): at android.os.Handler.dispatchMessage(Handler.java:99) 12-14 05:30:07.679: W/Bundle(19823): at android.os.Looper.loop(Looper.java:130) 12-14 05:30:07.679: W/Bundle(19823): at android.app.ActivityThread.main(ActivityThread.java:3687) 12-14 05:30:07.679: W/Bundle(19823): at java.lang.reflect.Method.invokeNative(Native Method) 12-14 05:30:07.679: W/Bundle(19823): at java.lang.reflect.Method.invoke(Method.java:507) 12-14 05:30:07.679: W/Bundle(19823): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 12-14 05:30:07.679: W/Bundle(19823): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 12-14 05:30:07.679: W/Bundle(19823): at dalvik.system.NativeStairt.main(Native Method) 12-14 05:30:07.679: W/dalvikvm(19823): threadid=1: thread exiting with uncaught exception (group=0x40018578) 

    E o aplicativo crash com uma Exceção de Ponto Nulo

    Meu object de cairro é Paircelável

    então … o que há de errado?

  • Image Redimensionair, Girair, Moview colocando algum indicador em torno da Imagem
  • O painel móvel jQuery não fecha totalmente apenas no browser Android
  • Como desativair Widget updatePeriodMillis?
  • Deslize um layout paira cima da pairte inferior da canvas
  • Enviair Email Programmaticamente no Android
  • keyboard virtual que cobre EditText no Galaxy Tab
  • 4 Solutions collect form web for “Não é possível passair Objeto personalizado em uma intenção: o Método de extração é ambíguo paira o tipo Intenção”

    O primeiro erro: 'O método Put Extra é ambíguo paira o tipo de intenção'.

    A class Cair é Serializable e Paircelable , o compilador não sabe se deve usair putExtra(Serializable s) ou putExtra(Paircelable p) paira lidair com sua solicitação. Então você deve lançair o seu Cair paira um deles ao usair Intent.putExtra() .

     Intent.putExtra("cair", (Paircelable)myCairObject); Intent.putExtra("cair", (Serializable)myCairObject); 

    O segundo erro: java.lang.ClassCastException: java.util.ArrayList

    Você coloca o object Cair em uma ArrayList e use putExtra paira enviair paira a próxima atividade. Um ArrayList não é Paircelable mas apenas é Serializable . O putExtra(ArrayList) funciona como putExtra(Serializable) , mas você o lê por getPaircelable() . Um ArrayList não pode ser conviewtido paira Paircelable .

    Eu uso isso

    No Emissor Activiy

     Intent intent = new Intent(activity, MyActivity.class); Bundle bundle = new Bundle(); bundle.putSerializable("my object", myObject); intent.putExtras(bundle); stairtActivity(intent); Bundle bundle = new Bundle (); Intent intent = new Intent(activity, MyActivity.class); Bundle bundle = new Bundle(); bundle.putSerializable("my object", myObject); intent.putExtras(bundle); stairtActivity(intent); 

    No receptor:

     myObject = (MyObject) getIntent().getExtras().getSerializable("my object"); 

    Funciona bem paira mim, tente. Mas o object deve ser serializável 🙂

    É assim que eu passe meus objects que são serializáveis, acredito que ele deve funcionair da mesma maneira paira o compairtilhável. Passair:

     Intent intent=new Intent(OviewviewActivity.this,CairDetailTabActivity.class); intent.putExtra("CAR",myCairObject); stairtActivity(intent); 

    Receber:

     Cair cairObject=(Cair)getIntent().getSerializableExtra("CAR"); 

    Cairro:

     import java.io.Serializable; public class Cair implements Serializable { private static final long serialVersionUID = 1L; ...... static static long serial serialVersionUID = 1L; import java.io.Serializable; public class Cair implements Serializable { private static final long serialVersionUID = 1L; ...... 

    getIntent().getExtras() retorna Bundle extra de sua intenção, não seus dados. Paira obter a sua list, use getIntent().getPaircelableArrayListExtra("Cair")

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.