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. G1 GPS receiver turn on and turn off

Hi,

I would like to control the GPS receiver via software. Simple turn on
and turn off.

Has anyone done it? I imagine that T-Mobile/HTC would have to share G1
specific SDK to accomplish that, am I right?

Thanks,
hdk

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

2. Documents supported on Android

Hi,

is there any way to open files .pdf, .doc, .ppt, .odt ... with Android?

thanks!

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

3. question about IBinder.queryLocalInterface()

4. SimpleCursorAdapter questions

5. Android App Store

6. GridView Selector Padding

7. Problems with socket connection