How do you create a custom Preference which needs to invoke a "activity for result" like RingtonePreference?

by Pino Silvaggio » Fri, 13 Aug 2010 06:23:30 GMT


Sponsored Links
 Seriously, who decided or wrote this code?

PreferenceManager contains very useful methods like
"registerOnActivityResultListener" which enables you to call
startActivityForResult in your custom preference like
RingtonePreference does but it's restricted at the package level!?

So tell me, let's say I wanted a ImagePreference. How should I
proceed? I want to be able to use a activity for result intent with
the PICK action...

--



How do you create a custom Preference which needs to invoke a "activity for result" like RingtonePreference?

by TreKing » Fri, 13 Aug 2010 11:14:14 GMT


 




Hint: PreferenceActivity is an Activity like any other ...

-------------------------------------------------------------------------------------------------
TreKing < http://sites.google.com/site/rezmobileapps/treking> ; - Chicago
transit tracking app for Android-powered devices

--


Sponsored Links


How do you create a custom Preference which needs to invoke a "activity for result" like RingtonePreference?

by Pino Silvaggio » Fri, 13 Aug 2010 12:20:04 GMT


 Yes PreferenceActivity is an Activity.

But that not my problem.

The issue is how do I create a custom preference like
RingtonePreference
if what I need is in PreferenceManager and is hidden by package level?

example:

registerOnActivityResultListener

which is needed if I want to call
preferenceManager.getActivity().startActivityForResult()

which getActivity() is also hidden.

This makes no sense.





--



How do you create a custom Preference which needs to invoke a "activity for result" like RingtonePreference?

by Kostya Vasilyev » Fri, 13 Aug 2010 15:08:01 GMT


 Pino,

You can always implement your own subclass of Preference.

The same thing can be done differently inside Android and in "regular" 
applications, that's Ok.


Subclassing Preference is actually quite nice, since the base class 
handles the drawing of title and subtitle strings, so your own 
preference will automatically have the right look.


Override onClick() and do whatever it is you want to do.

-- Kostya

13.08.2010 8:19, Pino Silvaggio :
Yes PreferenceActivity is an Activity. But that not my problem. The issue is how do I create a custom preference like RingtonePreference if what I need is in PreferenceManager and is hidden by package level? example: registerOnActivityResultListener which is needed if I want to call preferenceManager.getActivity().startActivityForResult() which getActivity() is also hidden. This makes no sense.
How should I proceed?
Hint: PreferenceActivity is an Activity like any other ... ------------------------------------------------------------------------------------------------- TreKing< http://sites.google.com/site/rezmobileapps/treking> ; - Chicago transit tracking app for Android-powered devices
-- Kostya Vasilev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com --



How do you create a custom Preference which needs to invoke a "activity for result" like RingtonePreference?

by TreKing » Fri, 13 Aug 2010 22:40:18 GMT


 On Thu, Aug 12, 2010 at 11:19 PM, Pino Silvaggio




No, it's your solution.

your Preferences, set click listeners for any of them, and call
startActivityForResult() from the PreferenceActivity to do whatever you
need. What's the problem with this?



Extend Preference, just like it does?



I don't see what you *need* this.



What makes no sense is why you feel you need to go through the
PreferenceManager functions when these two facilities are available to you
in PreferenceActivity.

-------------------------------------------------------------------------------------------------
TreKing < http://sites.google.com/site/rezmobileapps/treking> ; - Chicago
transit tracking app for Android-powered devices

--



How do you create a custom Preference which needs to invoke a "activity for result" like RingtonePreference?

by Pino Silvaggio » Fri, 13 Aug 2010 23:37:30 GMT


 This is so simple.

If I use a PreferenceActivity to handle my CustomPreference onclick()
or any other state
of a Preference added to it then the CustomPreference is worthless and
is tied to a specific activity.

It's like RingtonePreference basically doesn't do anything and you
have to explicitly write code
in PreferenceActivity to make it work.

Just look at the android sources you'll understand what I mean.
RingtonePreference handles the
activity call to pick a ringtone and save it's state.

I want to create a CustomPreference that is self-contained like any
other android preferences.






--



How do you create a custom Preference which needs to invoke a "activity for result" like RingtonePreference?

by TreKing » Fri, 13 Aug 2010 23:48:38 GMT


 On Fri, Aug 13, 2010 at 10:37 AM, Pino Silvaggio




Ah, well, this makes it clear now what you're trying to do - this was not
clear to me before, sorry.

Maybe have your CustomPreference store a reference to Activity which you set
in the PreferenceActivity onCreate?
Not completely "self-contained", but you need access to the parent Activity
*somewhere*.

-------------------------------------------------------------------------------------------------
TreKing < http://sites.google.com/site/rezmobileapps/treking> ; - Chicago
transit tracking app for Android-powered devices

--



Other Threads

1. Default Paint size too small on new device; is there a better source?

Thanks everybody.  I'm using the following, inspired by the replies
above, that seems to work on 1.5 as well
without reflection.  I define MIN_FONT_DIPS to be 14.0f.

        final float scale =
getResources().getDisplayMetrics().density;
        m_defaultFontHt = (int)(MIN_FONT_DIPS * scale + 0.5f);

So I can initialize a Paint() to a font size I set in a resource?
That would be cool;
I'll look for examples.








> > 

2. List of all instantiated Activities

Anybody know an easy way for an app to find all the instances of all the
Activities currently alive in the current process?

 

Yes, I could register each one into a static List<> someplace from the
constructor of each Activity, but that requires developers to remember to
put that code into every Activity constructor, which is going to eventually
miss one or two (not to mention keep the Activity alive longer than it
should be, though that could be fixed by holding WeakReferences instead of
strong ones, but that still misses the point), and that's going to mean one
or two escape the list. I'd prefer to have a way to see all of them from
Android's/Dalvik's point of view.

 

Ted Neward

Java, .NET, XML Services

Consulting, Teaching, Speaking, Writing

 <http://www.tedneward.com> http://www.tedneward.com

 

 

-- 

3. Information provided to developers from Android Market

4. OOT WTA: Anggota Republik Mimpi G1

5. Why my logger can`nt record mos t log info锛

6. Sprint Hero Android 2.1 Lost Copy Protected Apps Access

7. How to export mediaplayer on 2.2?