Inconsistent usage of setResult(..) Intent.

by Spencer Riddering » Thu, 21 Aug 2008 13:22:28 GMT


Sponsored Links
 It appears that the example applications from version 0.9 and the
migration tips are not consistent in their usage of the Intent that is
passed to setResult(..)

Example:

  setResult(RESULT_OK, (new Intent()).setAction("Corky!"));
and
  setResult(RESULT_OK, (new Intent()).setAction("Violet!"));

  setResult(RESULT_OK, (new Intent()).setAction(mUri.toString()));

  setResult(RESULT_OK, new Intent().setData(uri));

  Bundle bundle = new Bundle();
  bundle.putString(TEST_STRING, "Corky!");
  Intent mIntent = new Intent();
  mIntent.putExtras(bundle);
  setResult(RESULT_OK, mIntent);

I believe that the NotesList.java is the only one which does it
correctly.

I'm not sure why "M5 to 0.9 porting and migration tips" bothers with
the Bundle. Isn't it more straight forward to just call
mIntent.putExtra(TEST_STRING, "Corky!");   ?

I think that ReceiveResults.java should have also called
putExtra(..):
  setResult(RESULT_OK, (new Intent()).putExtra(NAME, "Violet!"));

NoteEditor.java should have used putExtra(..):
  setResult(RESULT_OK, (new Intent()).putExtra(NAME,
mUri.toString()));
or better yet, it should have used the setData(..) method:
  setResult(RESULT_OK, (new Intent()).setData(mUri));

Many of these inconsistent usages stem from attempting to replace the
setResult(..) String parameter with the setAction(..) method's String.
IMHO, this hijacking of setAction(..) corrupts the clear purpose of
the Action String and so should be avoided.

Do I have it right? Am I missing something?

I'm interested in other people's take on this ambiguity because I see
it as an impediment to seamless integration between applications.

Originally blogged at: 
 http://spencer.riddering.net/2008/8/21/inconsistent-usage-setresult-intent 
--~--~---------~--~----~------------~-------~--~----~



Inconsistent usage of setResult(..) Intent.

by hackbod » Tue, 26 Aug 2008 00:19:43 GMT


 There is not really a "correct way."  There is no direct mapping
between the old arguments and the new ones -- you can structure your
data in the Intent as you want.  Generally you should follow the same
conventions as used elsewhere for Intents.

If this Intent is not going to travel outside of your app, it really
doesn't matter how you structure it.  If it is going between apps,
more thought should be put into it, and the NotePad example is a good
one to follow.  Note that the ApiDemo example is very artificial,
those results don't -mean- anything, so there isn't a strong
convention to use.



--~--~---------~--~----~------------~-------~--~----~


Sponsored Links


Other Threads

1. How to change the background color of ToggleButton?

Hello,

How can I change the background color of a ToggleButton?

-- 

2. Salam ...

Met pagi Android-er...

Salam kenal dr saya hendra,neubie yg mau blajar ngoprek hp android. Mohon
pencerahan dr master-master & suhu-suhu semua. Trimakasih...

dikirim dari TiReXian Droid - @hend72

-- 
===============

3. ARM toolchain

4. i have htc legend The problem with is that whenevr i connect it witd my computer it says USB DEVICE NOT RECOGNISED error

5. Access to picture stored in my mobile.

6. When to use SingleLaunchActivityTestCase

7. the bootloader used for the linux kernel