Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #3222

Re: Initializing from context passing

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail
From Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: Initializing from context passing
Date Sat, 23 Apr 2011 21:47:05 +0200
Organization A noiseless patient Spider
Lines 100
Message-ID <iovabp$613$1@dont-email.me> (permalink)
References <91ga4tF38vU1@mid.individual.net> <iouv3r$5ls$1@dont-email.me> <91gj4cF34fU1@mid.individual.net>
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding 7bit
Injection-Date Sat, 23 Apr 2011 19:47:05 +0000 (UTC)
Injection-Info mx03.eternal-september.org; posting-host="c5NCuBx/rO/OU6n3p+JXTg"; logging-data="6179"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19AxtVscI/QmvdFmXpnECYi"
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9
In-Reply-To <91gj4cF34fU1@mid.individual.net>
Cancel-Lock sha1:ULpuVIkjoCKlSC7h+aik4Fvt7As=
Xref x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:3222

Show key headers only | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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