Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #3222
| From | Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Initializing from context passing |
| Date | 2011-04-23 21:47 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <iovabp$613$1@dont-email.me> (permalink) |
| References | <91ga4tF38vU1@mid.individual.net> <iouv3r$5ls$1@dont-email.me> <91gj4cF34fU1@mid.individual.net> |
On 23/04/2011 20:12, Dirk Bruere at NeoPax allegedly wrote:
> On 23/04/2011 17:35, Daniele Futtorovic wrote:
>> On 23/04/2011 17:39, Dirk Bruere at NeoPax allegedly wrote:
>>> I have a Data class of the form:
>>>
>>> Data
>>> (
>>> public static ListView albumsLV;
>>> public static ArrayAdapter<String> albumsTitleAdapter
>>> public static ArrayList<String> albumsTitleArrayList = new
>>> ArrayList<String>();
>>>
>>> Data(Context ctx)
>>> {
>>> albumsLV = (ListView )((Activity)
>>> ctx).findViewById(R.id.ListViewAlbums);
>>>
>>> albumsTitleAdapter = new ArrayAdapter<String>(ctx,
>>> android.R.layout.simple_expandable_list_item_1,albumsTitleArrayList);
>>> }
>>>
>>> }
>>>
>>> and in the main method{
>>>
>>> public void onCreate(Bundle savedInstanceState)
>>> {
>>> super.onCreate(savedInstanceState);
>>> setContentView(R.layout.main);
>>> Context currentContext = this;
>>>
>>> Data data = new Data(currentContext);
>>>
>>> }
>>>
>>> lvAlbum = (ListView)findViewById(R.id.ListViewAlbums);
>>> lvAlbum.setAdapter(Data.albumsTitleAdapter);
>>> }
>>>
>>> I never use Data data variable again.
>>> Is that sufficient to initialize the static parameters in Data class?
>>>
>>
>> Yeah, but it's crap. At least make it a static method e.g.
>> Data.init(Context).
>
> So do not do it in the constructor?
/Where/ you do it isn't as much the point as whether you do it
statically or not.
If your data is of static nature (i.e. bound to the program, global,
rather than bound to a context), then it is wrong to initialise it
through an instance.
Of course, you might also do this...
##############################################
private static volatile Data singleton;
public static void init( Context context )
throws InitialisationException
{
singleton = new Data( context );
}
public static Data getSharedInstance(){
if( singleton == null ) throw new IllegalStateException("not
initialised");
return singleton;
}
private final ListView albumsLV;
private final ArrayAdapter<String> albumsTitleAdapter
private final List<String> albumsTitleArrayList = new ArrayList<String>();
Data(Context ctx)
throws InitialisationException
{
albumsLV = (ListView )((Activity)
ctx).findViewById(R.id.ListViewAlbums);
albumsTitleAdapter = new ArrayAdapter<String>(ctx,
android.R.layout.simple_expandable_list_item_1,albumsTitleArrayList);
}
public ListView getAlbumsLV(){ return albumsLV; }
public ArrayAdapter<String> getAlbumsTitleAdapter(){ return
albumsTitleAdapter; }
public List<String> getAlbumsTitleList(){ return albumsTitleArrayList; }
}
##############################################
... and your initialisation would happen in a constructor, be bound to
an instance and that would be fine. But still you'd access it
statically, therefore it's static data. And static data ought to be
initialised statically.
--
DF.
An escaped convict once said to me:
"Alcatraz is the place to be"
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar
Initializing from context passing Dirk Bruere at NeoPax <dirk.bruere@gmail.com> - 2011-04-23 16:39 +0100
Re: Initializing from context passing Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-04-23 18:35 +0200
Re: Initializing from context passing Dirk Bruere at NeoPax <dirk.bruere@gmail.com> - 2011-04-23 19:12 +0100
Re: Initializing from context passing Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-04-23 21:47 +0200
Re: Initializing from context passing Dirk Bruere at NeoPax <dirk.bruere@gmail.com> - 2011-04-23 20:34 +0100
Re: Initializing from context passing Lew <noone@lewscanon.com> - 2011-04-23 18:35 -0400
Re: Initializing from context passing Dirk Bruere at NeoPax <dirk.bruere@gmail.com> - 2011-04-24 01:17 +0100
Re: Initializing from context passing Lew <noone@lewscanon.com> - 2011-04-23 20:32 -0400
csiph-web