我在horizontalField中有5位图,当我点击位图然后位图它显示异常 经理。替换:newField已经有一个经理 我正在使用此代码:
hfm = new HorizontalFieldManager(Field.FIELD_HCENTER|Field.FIELD_VCENTER);
bitmapField1 = new BitmapField(mImgTable , BitmapField.FOCUSABLE) {
protected boolean navigationClick(int status, int time )
{ try{
//Dialog.alert("image changed");
hfm.replace(bitmapField1, bitmapField6);
hfm.replace(bitmapField2, bitmapField);
hfm.replace(bitmapField3, bitmapField);
hfm.replace(bitmapField4, bitmapField);
hfm.replace(bitmapField5, bitmapField);
}catch(Exception e){
Dialog.alert("choose only one"+e);
}
return true;
}
};
hfm.add( bitmapField1);
答案 0 :(得分:2)
从替换方法的描述:
replace:从此Manager中删除一个字段并将其替换为 另一个领域。指定的oldField必须是此的直接子级 管理员和指定的newField不得由任何人管理 经理,包括这一个。
在这里,您将bitmapField多次替换为其他的一个到同一个Manager:
hfm.replace(bitmapField2, bitmapField);
hfm.replace(bitmapField3, bitmapField);
hfm.replace(bitmapField4, bitmapField);
hfm.replace(bitmapField5, bitmapField);
答案 1 :(得分:1)
不要像hfm.replace(bitmapField1,bitmapField6);那样替换你的HorizontalFieldmanager。只需按照bitmapField1.setBitmap(bitmapField6)重新映射您的图像;为你所有的图像..
它在我的案例中工作
答案 2 :(得分:0)
在替换bitmapField之前,必须先对其进行初始化。