That's what I thought.

Any ideas why the value is getting lost from the application?

I created a class that I called BaseClass that inherits Application.
That class contains:

        private String uploadUrl;

          public String getUploadUrl(){
            return uploadUrl;
          }
          public void setUploadUrl(String url){
                  uploadUrl = url;
          }

In my activity, I'm setting it:
public void onPageFinished(WebView view, String url)
{

                BaseClass appState =
((BaseClass)getApplicationContext());
                appState.setUploadUrl(new String(url));

        Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
        startActivityForResult(i, 1);
}

Then in the onActivityResult I'm trying to read it back out, but on
Droid phones it's NULL.  Works perfect on my HTC Hero (and the
emulators).  I know the url getting set is correct because I'm
checking it (I left that part out) and only show the image picker
intent if they are at a specific page.

protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {

        if (requestCode == 1)
        {
                BaseClass appState = ((BaseClass)getApplicationContext());
                String uploadUrl = appState.getUploadUrl(); // NULL on Droid 
phones
        }
}

I added
android:name=".BaseClass"

to the manifest.


On Sep 19, 2:05 pm, Mark Murphy <mmur...@commonsware.com> wrote:
> On Sun, Sep 19, 2010 at 2:59 PM, GregAZ <ggur...@gmail.com> wrote:
> > I think I'm missing something.  If I add the string as an extra to the
> > image picker intent, then show that intent, that extra is gone in the
> > onActivityResult.
>
> Correct.
>
> > Even with setResult it's still gone.  This is on my
> > HTC Hero:
>
> >        Intent i = new Intent(Intent.ACTION_PICK,
> > android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
> >        i.putExtra("url", url);
> >        setResult(1, i);
> >        startActivityForResult(i, 1);
>
> You do not call setResult() here. That is for use in the activity that
> is *started* by startActivityForResult().
>
> > In the onActivityResult:
> > String url = intent.getStringExtra("url");
>
> > It's null.
>
> Correct.
>
> If you are implementing the activity being started by
> startActivityForResult(), in that activity, you can use extras with
> setResult(). In this case, somebody else wrote that activity. Extras
> you put on the requesting Intent will not automatically be copied to
> the response Intent.
>
> --
> Mark Murphy (a Commons 
> Guy)http://commonsware.com|http://github.com/commonsguyhttp://commonsware.com/blog|http://twitter.com/commonsguy
>
> _The Busy Coder's Guide to Android Development_ Version 3.1 Available!

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to