User interface Blackberry-获取所有子控件字段
我有一个水平字段管理器我在运行时添加了一些组件。我想知道我在水平字段管理器中放置了哪些组件。有人能告诉我如何找到水平字段管理器中存在哪些组件吗。 当做User interface Blackberry-获取所有子控件字段,user-interface,blackberry,User Interface,Blackberry,我有一个水平字段管理器我在运行时添加了一些组件。我想知道我在水平字段管理器中放置了哪些组件。有人能告诉我如何找到水平字段管理器中存在哪些组件吗。 当做 s、 库马兰。类似的方法应该会奏效: public Field[] getFieldsOfManager(Manager manager) { Field[] fields = new Field[manager.getFieldCount()]; for( int i = 0; i < manager.getFieldCo
s、 库马兰。类似的方法应该会奏效:
public Field[] getFieldsOfManager(Manager manager) {
Field[] fields = new Field[manager.getFieldCount()];
for( int i = 0; i < manager.getFieldCount(); i++ )
{
fields[i] = manager.getField( i );
}
return fields;
}
公共字段[]getFieldsOfManager(管理器管理器){
字段[]字段=新字段[manager.getFieldCount()];
对于(int i=0;i
类似的方法应该可以:
public Field[] getFieldsOfManager(Manager manager) {
Field[] fields = new Field[manager.getFieldCount()];
for( int i = 0; i < manager.getFieldCount(); i++ )
{
fields[i] = manager.getField( i );
}
return fields;
}
公共字段[]getFieldsOfManager(管理器管理器){
字段[]字段=新字段[manager.getFieldCount()];
对于(int i=0;i
+1月1日,但是内部经理呢?一些递归可以做到这一点
class Scr extends MainScreen implements FieldChangeListener {
HorizontalFieldManager mMainPanel;
VerticalFieldManager mVerticalPanel;
ButtonField mPrintButton;
public Scr() {
add(new LabelField("Title", FIELD_HCENTER));
mMainPanel = new HorizontalFieldManager();
add(mMainPanel);
mVerticalPanel = new VerticalFieldManager();
mMainPanel.add(mVerticalPanel);
for (int i = 0; i < 5; i++) {
HorizontalFieldManager hfm = new HorizontalFieldManager();
hfm.add(new LabelField("Label " + i, FIELD_LEFT));
hfm.add(new BasicEditField(FIELD_RIGHT));
mVerticalPanel.add(hfm);
}
mPrintButton = new ButtonField("Print Console All Fields",
ButtonField.CONSUME_CLICK | FIELD_HCENTER);
mPrintButton.setChangeListener(this);
add(mPrintButton);
}
private Field[] getAllFields(Manager manager) {
int cnt = manager.getFieldCount();
Field[] result = new Field[cnt];
for (int i = 0; i < cnt; i++) {
Field field = manager.getField(i);
result[i] = field;
if (field instanceof Manager) {
Field[] childFields = getAllFields((Manager) field);
result = appendArray(result, childFields);
}
}
return result;
}
private Field[] appendArray(Field[] target, Field[] source) {
for (int i = 0; i < source.length; i++) {
Arrays.add(target, source[i]);
}
return target;
}
public void fieldChanged(Field field, int context) {
if (mPrintButton == field) {
Field[] fields = getAllFields(getMainManager());
for (int i = 0; i < fields.length; i++) {
System.out.print("\nN " + i + "; Class: "
+ fields[i].getClass().getName());
}
}
}
}
类Scr扩展主屏幕实现FieldChangeListener{
水平现场经理mMainPanel;
VerticalFieldManager mVerticalPanel;
按钮字段打印按钮;
公共Scr(){
添加(新标签字段(“标题”,字段输入));
mMainPanel=新的HorizontalFieldManager();
添加(mMainPanel);
mVerticalPanel=新的VerticalFieldManager();
mMainPanel.add(mVerticalPanel);
对于(int i=0;i<5;i++){
HorizontalFieldManager hfm=新的HorizontalFieldManager();
hfm.add(新标签字段(“标签”+i,字段左));
hfm.add(新的基本字段(字段右));
mVerticalPanel.add(hfm);
}
mPrintButton=新按钮字段(“打印控制台所有字段”,
ButtonField.CONSUME|单击|字段HCENTER);
mPrintButton.setChangeListener(此);
添加(打印按钮);
}
私有字段[]getAllFields(经理){
int cnt=manager.getFieldCount();
字段[]结果=新字段[cnt];
对于(int i=0;i
+1月1日,但是内部经理呢?一些递归可以做到这一点
class Scr extends MainScreen implements FieldChangeListener {
HorizontalFieldManager mMainPanel;
VerticalFieldManager mVerticalPanel;
ButtonField mPrintButton;
public Scr() {
add(new LabelField("Title", FIELD_HCENTER));
mMainPanel = new HorizontalFieldManager();
add(mMainPanel);
mVerticalPanel = new VerticalFieldManager();
mMainPanel.add(mVerticalPanel);
for (int i = 0; i < 5; i++) {
HorizontalFieldManager hfm = new HorizontalFieldManager();
hfm.add(new LabelField("Label " + i, FIELD_LEFT));
hfm.add(new BasicEditField(FIELD_RIGHT));
mVerticalPanel.add(hfm);
}
mPrintButton = new ButtonField("Print Console All Fields",
ButtonField.CONSUME_CLICK | FIELD_HCENTER);
mPrintButton.setChangeListener(this);
add(mPrintButton);
}
private Field[] getAllFields(Manager manager) {
int cnt = manager.getFieldCount();
Field[] result = new Field[cnt];
for (int i = 0; i < cnt; i++) {
Field field = manager.getField(i);
result[i] = field;
if (field instanceof Manager) {
Field[] childFields = getAllFields((Manager) field);
result = appendArray(result, childFields);
}
}
return result;
}
private Field[] appendArray(Field[] target, Field[] source) {
for (int i = 0; i < source.length; i++) {
Arrays.add(target, source[i]);
}
return target;
}
public void fieldChanged(Field field, int context) {
if (mPrintButton == field) {
Field[] fields = getAllFields(getMainManager());
for (int i = 0; i < fields.length; i++) {
System.out.print("\nN " + i + "; Class: "
+ fields[i].getClass().getName());
}
}
}
}
类Scr扩展主屏幕实现FieldChangeListener{
水平现场经理mMainPanel;
VerticalFieldManager mVerticalPanel;
按钮字段打印按钮;
公共Scr(){
添加(新标签字段(“标题”,字段输入));
mMainPanel=新的HorizontalFieldManager();
添加(mMainPanel);
mVerticalPanel=新的VerticalFieldManager();
mMainPanel.add(mVerticalPanel);
对于(int i=0;i<5;i++){
HorizontalFieldManager hfm=新的HorizontalFieldManager();
hfm.add(新标签字段(“标签”+i,字段左));
hfm.add(新的基本字段(字段右));
mVerticalPanel.add(hfm);
}
mPrintButton=新按钮字段(“打印控制台所有字段”,
ButtonField.CONSUME|单击|字段HCENTER);
mPrintButton.setChangeListener(此);
添加(打印按钮);
}
私有字段[]getAllFields(经理){
int cnt=manager.getFieldCount();
字段[]结果=新字段[cnt];
对于(int i=0;i