2011-07-11 50 views
0

假設我有這樣的有10 ListField一個Screen類:黑莓ListField:如何添加偵聽器列表行單擊

Vector v_prj_title,v_prj_mgr 

// v_prj_title contains name of projects 

// v_prj_mgr contains name of the project_manager of v_prj_title sequentially. 

//Vector send_vector 

//ListField myList 

//ListCallBack callback 

//It is clear from the code that in myList, I m inserting a vector send_vector ie callback.insert(send_vector,i), which contains 2 strings collected one from v_prj_title and other from v_prj_mgr. 


for(int i=0;i<10;i++) 
{ 
    myList.insert(i); 
    t1 = v_prj_title.elementAt(i).toString(); 
    send_vector = new Vector(2); 
    send_vector.addElement(t1); 
    t2 = v_prj_mgr.elementAt(i).toString(); 
    send_vector.addElement(t2); 
    callback.insert(send_vector,i); 
} 

現在我越來越糊塗如何事件監聽添加到特定ListField,例如假設我單擊第三個ListField(假設這是下面顯示的數據),應在第三個ListField中顯示一個位圖圖片,並將項目名稱(Project_Social_Meeting)和project_manager(Tom Clerk)插入數據庫(SQlLite)

 
1. a. Project_Chat_Master(project name) 

    b. Vyom Ryan (project manager) 

2. a. Project_Online_Gaming 

    b. Vivek Roy 

3. a. Project_Social_Meeting 

    b. Tom Clerk 
     . 
     . 
     etc..... 
+1

你實際上是否有一個帶有10行的ListField? –

+0

是的,我的意思是,只有在每個列表字段中有2個字符串被顯示(project_name,project_manager),這是插入與矢量的幫助.. callback.insert(send_vector,i); –

回答

1

根據您的需求創建的CustomField /經理(其中可能包含圖像/串/ ...)

然後將它們添加到回調方法

例:


步驟:1

//creating a custom field 
class MYListFieldItem extends Field 
{ 
//@override 
paint(graphics g) 
{ 
g.drawbitmap(bitmap,0,0); 
g.drawtext(string,bitmap.getwidth()+5<padding>,Math.min(bitmap.getHeight(),getFont().getHeight())); 

//@override 
layout(....) 
{ 
setExtent(Math.min(width,bitmap.getwidth()+padding+getfont.getadvance(stringtext)), 
Math.min(height,Math.min(bitmap.getHeight,getFont().getHeight()))); 
} 
} 

步驟-2: //創建列表項

MYListFieldItem [] fields[] = new MYListFieldItem [<numOfListItems>]; 
for(int i=0;i<fields.size;i++) 
{ 
_callback = new MyListFieldCallBack(); 
_callback.insert(fields[i],i); 
} 

步驟-3:

//set listeners 
mylistFielditem[i].setchangeListener(new fieldchangeListener(){ 
fieldChanged(field) 
{ 
//do your action here. 
}); 

//TIP: if the fields are just strings, 
//@override 
navigationclick() 
{ 
if(status == keypadlistener.status_fourway) 
{ 
MYListFieldItem fld = (ListField)getLiefFieldwithFocus(); 
//do your coding 

} 
}