User interface 如何从Blackberry中动态生成的editfield中获取值

User interface 如何从Blackberry中动态生成的editfield中获取值,user-interface,blackberry,dynamic-ui,blackberry-editfield,User Interface,Blackberry,Dynamic Ui,Blackberry Editfield,我需要在运行时动态生成ui组件。我能够生成组件,但我的问题是如何获取在动态生成字段中输入的值 我正在做这样的事情 final HorizontalFieldManager hfm = new HorizontalFieldManager(); for (int i=0; i<5; i++) { hfm.add(new EditField()); } 最终HorizontalFieldManager hfm=新HorizontalField

我需要在运行时动态生成ui组件。我能够生成组件,但我的问题是如何获取在动态生成字段中输入的值

我正在做这样的事情

    final HorizontalFieldManager hfm = new HorizontalFieldManager();

    for (int i=0; i<5; i++)
    {
        hfm.add(new EditField());
    }
最终HorizontalFieldManager hfm=新HorizontalFieldManager();
对于(int i=0;i
//做点什么

VerticalFieldManager vfm = new VerticalFieldManager();
for(int i=0 ;i<size ;i++)
{
    HorizontalFieldManager hfm = new HorizontalFieldManager();
    ef[i] = new EditField();
    hfm.add(ef[i]);
    vfm.add(hfm);
}
add(vfm);
VerticalFieldManager vfm=新的VerticalFieldManager();
对于(int i=0;i
//做点什么

VerticalFieldManager vfm = new VerticalFieldManager();
for(int i=0 ;i<size ;i++)
{
    HorizontalFieldManager hfm = new HorizontalFieldManager();
    ef[i] = new EditField();
    hfm.add(ef[i]);
    vfm.add(hfm);
}
add(vfm);
VerticalFieldManager vfm=新的VerticalFieldManager();

就我所知,对于(int i=0;i,没有办法为EditField设置唯一id。也许您可以使用它的子类,并实现您自己的唯一id机制。 或者,由于您的HorizontalFieldManager只持有EditField,您可以按位置获取字段,并将其转换为EditField。如下所示:

Field f = hfm.getField(index);
EditField ef = (EditField)f;
更新:


公共类MyEditField扩展了EditField{

private int _id;

public MyEditField(int id) {
    _id = id;
}

public int getID() {
    return _id;
}
}

类MyHfm扩展了HorizontalFieldManager{

    //This is a cache, which holds all EditFields.


private IntHashtable_editfields=new IntHashtable()

}

然后你可以这样做:


还有一些其他的删除/添加方法,请记住处理其中的缓存。

据我所知,没有办法为EditField设置唯一id。也许您可以使用它的子类,并实现自己的唯一id机制。 或者,由于您的HorizontalFieldManager只持有EditField,您可以按位置获取字段,并将其转换为EditField。如下所示:

Field f = hfm.getField(index);
EditField ef = (EditField)f;
更新:


公共类MyEditField扩展了EditField{

private int _id;

public MyEditField(int id) {
    _id = id;
}

public int getID() {
    return _id;
}
}

类MyHfm扩展了HorizontalFieldManager{

    //This is a cache, which holds all EditFields.


private IntHashtable_editfields=new IntHashtable()

}

然后你可以这样做:

还有一些其他的删除/添加方法,请记住处理其中的缓存。

使用and来设置和检索字段上的cookie。您可以使用and来匹配所需的编辑字段。

使用and来设置和检索字段上的cookie。您可以使用and来匹配所需的编辑字段。

您可以尝试l像这样

Editfield ef = new Editfield();
add(ef);
ef.setcookie("Here you can set object with specific value");
ef.setchangelistner(this);
和字段内更改listner函数

public void fieldChanged(Field field, int context) {
    object ob = field.getcookie();
    // compare this ob and give appropriate actionss
}
你可以这样试试

Editfield ef = new Editfield();
add(ef);
ef.setcookie("Here you can set object with specific value");
ef.setchangelistner(this);
和字段内更改listner函数

public void fieldChanged(Field field, int context) {
    object ob = field.getcookie();
    // compare this ob and give appropriate actionss
}

我在记事本中写下这段代码,因此如果代码中有任何拼写错误或拼写错误,请解决它。是否有任何方法可以设置并获取字段的标记、id或名称,以便从特定字段中提取值?@Ajmal请针对具体问题。@Krish我不明白您想要实现什么。请简要说明描述您的要求。什么是标记、id或名称…??我将此代码写在记事本中,因此,如果代码中存在任何拼写错误或拼写错误,请解决它。是否有任何方法将标记、id或名称设置并获取到字段中,以便从特定字段中提取值?@Ajmal请针对该问题。@Krish I do不了解您想要实现什么。请简要描述您的需求。什么是标记、id或名称…??您能给出一些实现唯一id机制的子类示例吗?您能给出一些实现唯一id机制的子类示例吗?