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. IRC office hours Thursday 5:00-6:00 pm PST

Hi everyone,

This is a quick reminder that we will be hosting IRC office hours tomorrow
5:00-6:00 pm PST in the #android-dev IRC channel.

Please post/vote your questions for tomorrow's office hours at the link
below and we will try to answer as many as we can in the hour:

http://moderator.appspot.com/#15/e=120951&t=121ce5


Thanks,
Megha

--

2. Different formats of postal address with ContactsContracts

Is there a way to get the data: address, postalcode, country ect. in
different country formats.

Like in Great Britain:
 [recipient]
 [street name]
 [postal town (town/city)]
 [postal code]
 [country name]

And in The Netherlands:
 [recipient]
 [street name]
 [postal code] [postal town (town/city)]
 [country name]

I now use the ContactsContract from Android 2.0.1 and tried the
ContactsContract.CommonDataKinds.StructuredPostal.DATA1
(FORMATTED_ADDRESS).
But this seems to give the data as follows (no matter what country
settings):
 [street name]
 [postal town (town/city)] [postal code]

Thanks.

-- 

3. Scrollbar in AdapterView

4. where is debug certificate when build with Eclipse?

5. how to stop screen from dimming

6. Problem in consuming/calling ASP.NET web service from the Android

7. Problem listener onItemClick with ListView