如何在J2ME中实现会话变量?

时间:2010-02-18 07:13:19

标签: java session blackberry java-me variables

是否可以在J2me中使用会话?我正在尝试开发一个Blackberry应用程序。我想从类(页面)获取一些文本并在另一个类(页面)中使用。可能就像我们在app.net中做的那样:

Class1
{
    session("myVariable") = Textbox.Text;
}

//a new class
Class2
{
    TextBox2.Text = session("myVariable").toString();
}

我会非常感谢任何类型的帮助。

2 个答案:

答案 0 :(得分:4)

您可以在第三个类中存储此类“全局”变量。您可以将这些变量设为公共和静态;虽然这可以导致紧密耦合的代码。

public class GlobalVariables
{
    public static string MyVariable = "empty";
}

然后你可以......

GlobalVariables.MyVariable = Textbox.Text;

...和...

TextBox2.Text = GlobalVariables.MyVariable;

...代码中的任何位置。虽然在通常的情况下这往往是不受欢迎的,但在尝试编写最小的快速代码以在有限的设备上运行时会很有用。

另一个提示是在GlobalVariables中使用reset-method将所有静态值重置为默认值,以防用户想要从应用程序中重置应用程序。此外,如果这是您存储所有会话变量的唯一位置,则可以在此处添加RMS保存和加载方法,以将其保存在一个位置。

同样,这不是最好的做事方式......但这很简单。

答案 1 :(得分:2)

当我第一次看到你的问题时,我认为这将是关于HTTP会话的,但看起来你只是在你的应用程序中存储状态之后。

有很多方法可以做到这一点。有些事情需要考虑:

  • 您是否需要在应用程序运行之间保留会话数据(或者可能是某些数据)?
  • 会话变量集是固定的,还是可以变化?
  • 所有变量都是'stringy'还是一些数字?

一个简单的实现可能是类中Hashtable的一个实例,它带有公共静态方法,通过调用Hashtable put()和get()方法来获取和设置变量。