Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface Blackberry ListField:如何为列表行单击添加侦听器_User Interface_Blackberry_Listfield - Fatal编程技术网

User interface Blackberry ListField:如何为列表行单击添加侦听器

User interface Blackberry ListField:如何为列表行单击添加侦听器,user-interface,blackberry,listfield,User Interface,Blackberry,Listfield,假设我有一个Screen类,它有10个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

假设我有一个Screen类,它有10个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);
}
Vector v_prj_标题,v_prj_经理
//v_prj_标题包含项目名称
//v_prj_经理按顺序包含v_prj_头衔的项目经理姓名。
//向量发送
//ListField myList
//列表回调
//从代码中可以清楚地看到,在myList中,我插入了一个向量send_vector ie callback.insert(send_vector,I),它包含两个字符串,一个来自v_prj_title,另一个来自v_prj_mgr。

对于(int i=0;i根据需要创建一个CustomField/Manager。(可能包含图像/字符串/…)

然后将它们添加到回调方法中

例:


步骤: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())));
}
}


你真的是指一个包含10行的列表字段吗?是的,我的意思只是,在每个列表字段中,有两个字符串要显示(项目名称,项目管理器),它是借助向量插入的..回调.插入(发送向量,i);
//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())));
}
}
MYListFieldItem [] fields[] = new MYListFieldItem [<numOfListItems>];
for(int i=0;i<fields.size;i++)
{
_callback = new MyListFieldCallBack();
_callback.insert(fields[i],i);
}
//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 

}
}