私の知る限り、EditFieldに一意のIDを設定する方法はありません。たぶん、そのサブクラスを使用して、独自のIDメカニズムを実装できます。または、HorizontalFieldManagerはEditFieldしか保持していないため、位置ごとにフィールドを取得してEditFieldにキャストできます。このような:
Field f = hfm.getField(index);
EditField ef = (EditField)f;
アップデート:
public class MyEditField extends EditField {
private int _id;
public MyEditField(int id) {
    _id = id;
}
public int getID() {
    return _id;
}
}
class MyHfm extends HorizontalFieldManager {
    //This is a cache, which holds all EditFields.
        private IntHashtable    _editfields = new IntHashtable();
    public EditField getById(int id) {
        EditField ef = (EditField)_editfields.get(id);
        return ef;
}
    public void add(Field f) {
        super.add(f);
        if (f instanceof MyEditField) {
            _editfields.put(((MyEditField)f).getID(), f);
        }
    }
    public void delete(Field f) {
        super.delete(f);
        if (f instanceof MyEditField) {
            _editfields.remove(((MyEditField)f).getID());
        }
    }
}
そして、あなたはこのようにすることができます:
    MyHfm hfm = new MyHfm();
    hfm.add(new MyEditField(0));
    hfm.add(new MyEditField(1));
    //get the field with id
    EditField f = hfm.getById(1);
他にもいくつかの削除/追加メソッドがあります。それらの内部のキャッシュを処理することを忘れないでください。