我正在創建一個黑莓應用程序。在這我使用自定義列表。當我選擇一個菜單項選擇,然後第一次工作正常,我再次選擇菜單,再次添加列表元素。在黑莓中選擇菜單時重複列表字段元素?
我想通過再次單擊來顯示一次性列表元素不重複元素。
如何刪除以前的列表元素。
我的代碼是在這裏
public class SecondScreen extends MainScreen {
/*private LabelField tab1;
private LabelField tab2;
private LabelField tab3;*/
private CustomButton tab1;
private CustomButton tab2;
private CustomButton tab3;
private LabelField spacer1;
private LabelField spacer2;
private VerticalFieldManager tabArea;
private LabelField tab1Heading;
private BasicEditField tab1Field1;
private BasicEditField tab1Field2;
private LabelField tab2Heading;
private BasicEditField tab2Field1;
private BasicEditField tab2Field2;
private LabelField tab3Heading;
private BasicEditField tab3Field1;
private BasicEditField tab3Field2;
private VerticalFieldManager tab1Manager;
private VerticalFieldManager tab2Manager;
private VerticalFieldManager tab3Manager;
private BitmapField bmpfield;
private LabelField title;
static Font fontTitleTop;
//XmlParse parse;
ListField myList;
public SecondScreen() {
fontTitleTop = Font.getDefault().derive(Font.BOLD, 25);
final Bitmap logo = Bitmap.getBitmapResource("title_bg.png");
HorizontalFieldManager hM = new HorizontalFieldManager(Field.FIELD_TOP|Field.FIELD_HCENTER)
{
public void paintBackground(Graphics g)
{
g.drawBitmap(0,0,Display.getHorizontalResolution(),50,logo,0,0);
g.setColor(Color.WHITE);
g.setFont(SecondScreen.fontTitleTop);
if(Display.getWidth()>=360){
g.drawText("Category",((Display.getWidth()/14)),10,0);
}
super.paintBackground(g);
}
protected void sublayout(int maxWidth, int maxHeight)
{
setExtent(maxWidth, 50);
}
};
//hM.add(title);
add(hM);
}
protected void makeMenu(Menu menu, int instance)
{
super.makeMenu(menu, instance);
menu.add(new MenuItem("Rss",10,10) {
public void run() {
String url = "http://192.168.0.118/rss_new/categories.xml";
XmlParse.category.removeAllElements();
XmlParse xp = new XmlParse();
xp.getDetails(url);
myList = new MyListField(XmlParse.category);
myList.setSize(XmlParse.category.size());
System.out.println("Xml Parsing");
add(myList);
}
});
menu.add(new MenuItem("Fav",10,10) {
public void run() {
System.out.println("Fav. List");
}
});
}
private class MyListField extends ListField implements ListFieldCallback
{
private Vector content = new Vector();
private Vector content2 = new Vector();
MyListField list ;
public MyListField(Vector content) {
this.content = content;
}
public void drawListRow(ListField listField, Graphics graphics,
int index, int y, int width) {
list = (MyListField)listField;
String title = content.elementAt(index).toString();
System.out.println("Content "+title+" at index"+ index);
TableManager tm = new TableManager(title, index);
tm.drawRow(graphics, 0, y, width, listField.getRowHeight());
}
public Object get(ListField listField, int index) {
return null;
}
public int getPreferredWidth(ListField listField) {
return 0;
}
public int indexOfList(ListField listField, String prefix, int start) {
return 0;
}
protected boolean navigationClick(int status, int time)
{
int selectedIndex = list.getSelectedIndex();
System.out.print("List selected index ::"+selectedIndex);
ThirdScreen thirdScreen = new ThirdScreen(selectedIndex);
UiApplication.getUiApplication().pushScreen(thirdScreen);
return true;
}
}
你試過什麼....? –
@BB專家我參考了這個鏈接http://supportforums.blackberry.com/t5/Java-Development/Custom-ListField-row-with-images-and-text/td-p/227993 – Newts
那麼哪個代碼你有實現... –