BlackBerry - how to pass data like Intent.putExtra() in Android -
i newbie on blackberry. how achieve (in blackberry) same of android's
intent.putextra("key","value");
to put values can received on next pushed screen in blackberry.
like in android activityone
-
intent intent = new intent(this, activitytwo.class); intent.putextra("value1", "this value 1 activitytwo "); intent.putextra("value2", "this value 2 activitytwo"); startactivity(intent);
in activitytwo
-
bundle extras = getintent().getextras(); if (extras == null) { return; } // data via key string value1 = extras.getstring(intent.extra_text); if (value1 != null) { // data }
is such thing possible in blackberry? if yes how do this?
using public static
variables (as in ganesh's answer) work, in general, that's not object-oriented pattern recommend.
luckily, can easier in blackberry in android. android's intent
mechanism unnatural many java developers. when 1 activity
starts activity
via intent
, not new
(create) instance of second activity
, , doesn't hold normal java reference object. if did, problem simpler. android's implementation forces use intent extras mechanism.
if old activityone
class becomes screenone
blackberry, , activitytwo
becomes screentwo
, can this:
public class screentwo extends screen { private string _value1; // doesn't have string ... it's whatever want private string _value2; public void setvalue1(string value) { _value1 = value; } public void setvalue2(string value) { _value2 = value; } }
then, in screenone
, can start screentwo
way
screentwo nextscreen = new screentwo(); nextscreen.setvalue1("this value 1 activitytwo"); nextscreen.setvalue2("this value 2 activitytwo"); uiapplication.getuiapplication().pushscreen(nextscreen);
that's more consistent way java objects used, , interact 1 another.
there's reasons why android made intents
, extras, in blackberry, don't have worry that.
edit: i'm trying consider think motivation behind mr. smith's comment below. if android intent
extras mechanism in sense can pass multiple data types 1 activity
another, key-value pairs, can achieve similar in blackberry. instead of screentwo
code above, use this:
public class screentwo extends screen { private hashtable _extras; public void putextras(hashtable extras) { _extras = extras; } }
where put(object, object)
key-value pair data hashtable
passed called screen, , read when need it. or even:
public class screentwo extends screen { private hashtable _extras; public void putextra(string name, object value) { _extras.put(name, value); } }
Comments
Post a Comment