2011-10-20 55 views
0

我想使我的應用程序黑莓在不同的語言。這意味着我使用英語作爲默認語言,然後當用戶選擇其他語言時,所有項目和所有應用程序將與其他語言一起使用。我使用這段代碼,並將Local.rrc和.rrh文件放在同一個包中。我的屏幕上沒有任何東西只是白色的屏幕。誰能幫我 ?把應用程序黑莓multilang(不同的語言)

package mypackage; 

import net.rim.device.api.ui.MenuItem; 
import net.rim.device.api.ui.UiApplication; 
import net.rim.device.api.ui.component.*; 
import net.rim.device.api.ui.container.*; 
import net.rim.device.api.i18n.*; 
public class Local extends UiApplication { 
    public static void main(String[] args) { 
    Local theApp = new Local(); 
    theApp.enterEventDispatcher(); 
    } 
    public Local() { 
     pushScreen(new LocalScreen()); 
    } 
    } 
    final class LocalScreen extends MainScreen implements LocalDemoResource { 
    private static ResourceBundle res = 
    ResourceBundle.getBundle(BUNDLE_ID, BUNDLE_NAME); 
    LabelField title; 
    RichTextField rtf; 
    public LocalScreen() { 
     super(); 
    title = new LabelField(res.getString(FIELD_TITLE),LabelField.ELLIPSIS| LabelField.USE_ALL_WIDTH); 
     setTitle(title); 
     rtf = new RichTextField(res.getString(MESSAGE)); 
     add(rtf); } 


    public void HelloWorldScreen() 
    { 
    LabelField title = new LabelField("HelloWorld Sample", 
      LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH); 
     setTitle(title); 
     add(new RichTextField("Hello World!")); 
    } 


    public boolean onClose() { 
     Dialog.alert(res.getString(GOODBYE)); 
     System.exit(0); 
     return true; 
     } 
    protected void makeMenu(Menu menu, int instance) { 
     menu.add(_english); 
     menu.add(_french); 
     menu.add(_spanish); 
     menu.add(_close); 
     } 
     private MenuItem _close = new MenuItem(res.getString(CLOSE), 110, 10) { 
     public void run() { 
      onClose(); 
     } 
     }; 
     private MenuItem _english = new MenuItem(res.getString(ENGLISH), 110, 10) 
     { 
     public void run() { 
     Locale.setDefault (Locale.get(Locale.LOCALE_en, null)); 
      refresh(); 
     } 
     }; 
     private MenuItem _french = new MenuItem(res.getString(FRENCH), 110, 10) { 
     public void run() { 
     Locale.setDefault (Locale.get(Locale.LOCALE_fr, null)); 
      refresh(); 
      } 
     }; 
     private MenuItem _spanish = new MenuItem(res.getString(SPANISH), 110, 10) 
     { 
     public void run() { 
     Locale.setDefault (Locale.get(Locale.LOCALE_es, null)); 
      refresh(); 
     } 
     }; 
     private void refresh() { 
      title.setText(res.getString(FIELD_TITLE)); 
      deleteAll(); 
      rtf = new RichTextField(res.getString(MESSAGE)); 
      add(rtf); 
      _english.setText(res.getString(ENGLISH)); 
      _french.setText(res.getString(FRENCH)); 
      _spanish.setText(res.getString(SPANISH)); 
      _close.setText(res.getString(CLOSE)); 
      } 
    } 
+0

這裏有什麼問題,請使用multilang?本地資源是否返回空值?或者沒有添加到屏幕上? –

+0

沒有在屏幕上添加任何我獲得白色屏幕 – mobileDeveloper

+0

你能夠實現這個??如果是的話請分享一下 –

回答

1

有一個例子進口--->進口黑莓樣品----> LocalizationDemo介紹如何在應用黑莓