在呼叫传入时更改BlackBerry的callIncoming()多次

时间:2012-06-03 07:57:31

标签: java blackberry

我正在开发app。得到信息。关于呼叫者的号码。 在查询信息时我有一个小问题。关于呼叫者,电话没有显示基本来电屏幕。 我想要一个带有一个额外标签的来电屏幕。 首先,标签的文本将是“正在搜索”,在我获得搜索结果后,我想根据信息更改标签的文本。我发现。 我试图使用phoneScreenPortrait.updateDisplay(),但没有任何事情发生。

代码:

public void callIncoming(int callId)
{
    ScreenModel screenModel = new ScreenModel(callId);
    PhoneScreen phoneScreenPortrait = screenModel.getPhoneScreen(PhoneScreen.PORTRAIT, PhoneScreen.INCOMING);

String resName = "";
String callNum = Phone.getCall(callId).getDisplayPhoneNumber();

if( Phone.getCall(callId).getContact() != null ) //Contact found
{
    screenModel.sendAllDataToScreen();
    return;
}

LabelField callerName;
callerName = new LabelField( "Searching" ) 
{
    public void paint(Graphics g) 
    {
        g.setColor(Color.WHITE);
        super.paint(g);
    }
}; 

callerName.setFont(phoneScreenPortrait.getCallerInfoFont());
phoneScreenPortrait.add(callerName);

screenModel.sendAllDataToScreen();

try
{
    resName = getName( callNum ); // Get's the name with my function
}
catch( Exception ex )
{
    System.out.println(ex.toString());
}

if( resName == null )
    resName = "No match..";

callerName.setText( resName );
phoneScreenPortrait.updateDisplay();

}

谢谢, ROTEM

1 个答案:

答案 0 :(得分:1)

好的,我自己设法解决了..

在我设置LabelField的文本后,我添加了这些行:

phoneScreen.updateDisplay();
phoneScreen.doPaint();
screenModel.sendAllDataToScreen();