Similar problem but this doesn't work. Following steps exists in my
apps and still not able to send data part of Intent (putExtras) from
one activity to another:
- Activity A is of type ListActivity showing some buttons.
- Any button click shows a Login screen (AlertDialog).
- onCreateDialog is implemented and I have two buttons on the
AlertDialog, Ok & Cancel, both having listener for onClick event. I
realize that if I try to start activity within onClick event of OK
BUTTON, the activity wont start.
- So I implemented onDismissListener and started activity from here.
- Now I call Activity B and passing new Intent where I have put extra
(Parcelable object)
In activity B the parcelable object comes empty... No info in it.
Code below:
Activity A (HomeActivity)
@Override
public void onDismiss(DialogInterface dialog) {
try{
HomeActivity home =
(HomeActivity)
((AlertDialog)dialog).getOwnerActivity();
Intent oldIntent =
home.getIntent();
oldIntent.setClass(home,
ServiceListActivity.class);
home.startActivityForResult(oldIntent,0);
}catch(Exception e){
Toast.makeText(HomeActivity.this, R.string.error_occured,
Toast.LENGTH_LONG).show();
}
}
Activity B (ServiceListActivity)
public void onCreate(Bundle savedInstanceState){
try{
super.onCreate(savedInstanceState);
setContentView(R.layout.middle_man);
Intent i = super.getIntent();
Bundle b = i.getExtras();
Iterator<String> iterator = b.keySet().iterator();
Services a = null;
while(iterator.hasNext()){
a = (Services)b.getParcelable(iterator.next());
}
Services s =
(Services)b.get(ServicesConstants.SERVICE_SELECTED);
...
...
Both 'a' and 's' comes null. They are type object "Services" which is
Parceable in nature.
Regards,
Arpit
On Apr 20, 1:50 am, "~ TreKing" <[email protected]> wrote:
> On Mon, Apr 19, 2010 at 1:24 AM, Ke Wu <[email protected]> wrote:
> > I dont know what the Intent exactly do when I use putExtra to pass in an
> > ArrayList<MyClass> object.
>
> Did you read the documentation on Intents? Specifically
> this:http://developer.android.com/intl/fr/reference/android/content/Intent...,
> java.util.ArrayList<? extends android.os.Parcelable>)
>
> > I guess MyClass need to implement Parcelable interface, so I just did it.
> > But still, it does not work.
>
> You guess right. If it does not work, you should explain what doesn't work.
> Just saying "it does not work" is useless to someone trying to help you.
>
> > Maybe I need to create a Bundle and then use Bundle' putParcelableArrayList
> > method to put my ArrayList<MyClass> object in, and then pass this bundle as
> > parameter of putExtra to the intent.
>
> No.
>
> > So crazy!
>
> Not really!
>
> > I am lazy
>
> Then you should not being doing Android development ... or any kind of
> programming for that matter.
>
> > , I just want to pass an ArrayList<MyClass> object simply, is there a
> > simple way??
>
> > Any suggestion would be greatly appreciated!
>
> See the link I posted.
>
> On Mon, Apr 19, 2010 at 3:23 AM, Kumar Bibek <[email protected]> wrote:
> > However, a cheap workaround would be to have this arraylist as a static
> > variable of your source activity. This way, you can access this Array List
> > from your destination activity
>
> Except that by doing this, you have to make sure the list is actually valid.
> If you start Activity A, fill the list, start Activity B, press Home, wait a
> while, come back to your app, your app may have been killed since you
> started it, the list will be empty, but you will be back in Activity B. If
> you don't validate that list and save and restore it somehow, you will run
> into trouble trying to access the empty (or null) list.
>
> -------------------------------------------------------------------------------------------------
> TreKing - Chicago transit tracking app for Android-powered
> deviceshttp://sites.google.com/site/rezmobileapps/treking
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group
> athttp://groups.google.com/group/android-developers?hl=en
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en