Tham dự Tech Lounge

Tham dự Tech Lounge


[How-To] Viết 1 ứng dụng cơ bản nhất cho BlackBerry

Keeper
27/4/2009 15:35Phản hồi: 136
Sau đây là từng bước cơ bản nhất để viết 1 chương tinh cho BlackBerry 1 cách cơ bản nhất. Bằng cách dựa trên bộ sample kèm theo BlackBerry JDE. Trước hết hãy làm theo các bước sau để có 1 chương trình chạy được cho dòng mày của mình.

Sau đó sẽ modify từ từ, thêm bớt, chình sửa đề ra được những cái mình muốn. Vì vậy đòi hỏi kiên nhẫn. Từng bước. Chạy được trên máy cái đã, rồi tính gì tính.

Đòi hỏi kiến thức: Java cơ bản, đọc và hiểu các syntax cơ bản.

Chương trình cần:

Sun JDK/JRE: (Có cái này mới install BlackBerry JDE được)


https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u13-oth-JPR@CDS-CDS_Developer

Download về install.

snowman bổ sung cái này rất quan trọng mà Keeper quên, install xong Java JDK thì làm thêm bước sau:

<!---Bổ sung----->


Mình đã tìm được cách sửa lỗi trên và buid thành công 😁

Cách làm: Sau khi cài đặt JDK xong thì thêm đường dẫn tới thư mục bin của JDK vào PATH Environment Variables của windows, trong trường hợp của mình là:

C:\Program Files\Java\jdk1.6.0_13\bin

Sau đó download BlackBerry JDE: Sang link sau:

Quảng cáo



http://www.tinhte.com/forum/showthread.php?t=192593

Lựa JDE có version phù hợp với OS của máy đang dùng.

Download về install.

Sau đó mở BlackBerry JDE.


Bên tay trái có cửa sổ gọi là WorkSpace. WorkSpace sẽ chứa Project.

Mới mở lên bạn sẽ thấy một loạt rất nhiều các project SAMPLE kèm theo bộ JDE. Expand từng cái xem lướt qua đến project tên:

Quảng cáo



helloworlddemo


Double Click lên Project helloworlddemo, trong bảng đó có TAB General, điền Title, Vendor, Description... Đây là thông tin về phần mềm vừa viết.Muốn điền gì cũng được.

TAB Application: Chọn Project Type là CLDC Application

TAB Resources: Chọn Icon cho chương trình, chọn hình PNG nào nhỏ nhỏ 64x64 là ok. Ko thì mặc định nó có icon của BlackBerry làm sẵn cho nó.

Còn lại ko đề cập thì ko chỉnh sửa trừ khi you know exactly what are you doing.

Right click lên Project helloworlddemo > chọn Build


Xong rồi lại Right Click lên project 1 lần nữa > Scroll xuống dưới chọn Generate ALX file


Sau đó dùng Desktop Manager. Application Manager > Browse tới thư mục chứa helloworlddemo rồi chọn file ALX.(Thường thì thư mục chứa sample sẽ nằm trong thư mục của BlackBerry JDE.

Reply nếu làm ko được.


Những bạn nào build thành công rồi cài được vào máy rồi thì mày mò cho quen với BlackBerry JDE như đổi version/vendor của chương trình mình vừa viết.

Xem code của ví dụ đó xem tại sao nó lại ra như vậy, nó dùng cái gì, mình add thêm có được hay không.

Trong helloworlddemo có 2 cái chính mà bạn sẽ học là:

Cách viết 1 ứng dụng GUI(Graphic User Interface) là có giao diện mà mình thấy có screen, có menu, có button, có field...Khác với Command Line UI là chỉ có text, input hay out chỉ là chữ với chữ mà ko có hình ảnh.

Cơ bản là :

final class HelloWorldScreen extends MainScreen > Dòng này thể hiển đây là chương trình HelloWorldScreen có tính chất GUI. Và GUI của nó là một màn hình hiện full màn hình của thiết bị.

LabelField title = new LabelField("Hello World Demo" , LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH); > Dòng này dùng để tạo 1 Label có nội dung là "Hello World Demo"

setTitle(title);
> Sau khi tạo Label thì gán Label này thành Title cho Application.

add(new RichTextField("Hello World!" ,Field.NON_FOCUSABLE));
> Sau đó thì dùng dòng này để add thêm cho cái MainScreen của chương trình 1 cái RichTextField, là khung soạn thảo và set nội dung cho nó tạm thời là "Hello World!".

Code:
public void close()
{
// Display a farewell message before closing application.
Dialog.alert("Goodbye!");
System.exit(0);

super.close();
}
Đoạn code trên sẽ đảm nhiệm chức năng là pop up 1 cái Dialog nội dung là "Goodbye!" khi người dùng Close application.

Dialog, Label và RichTextField là 3 cái mà bạn học được từ chương trình này.

Sau khi chạy được trên thiết bị thì bạn bắt đầu tập tham khảo API Doc, tốt nhất là :

Trong BlackBerry JDE bạn Chọn Help > API Reference


Sẽ hiện đủ tất cả API. Lưu ý trong số đó sẽ có cái dùng được cho OS khác nhau. Ví dụ bạn dùng JDE 4.7 thì nó sẽ hiện tất cả API cho OS 4.7 vì vậy nếu có cái bạn thấy nhưng khi sử dụng trong khi viết ứng dụng cho OS 4.5 thì báo lỗi Not Found chính là do OS 4.5 chưa support cái đó.

Vì vậy khi xem API Doc thì lưu ý xem nó được trang bị từ JDE version mấy. Như:

Since:
JDK1.0
Cái này nó ghi từ JDK 1.0 tức là từ lâu đã có. Chạy trên hầu hết các máy.

Còn như TouchEvent thì nó ghi:
Since:
JDE 4.7.0
Tức là chỉ máy nào OS 4.7 trở lên mới dùng được.

Bạn làm xong thì tập xem API Doc. Xem trước 3 cái:

Dialog
LabelField
RichTextField


Ví dụ trong helloworlddemo thì nó sử dụng: Dialog.alert("Thông báo");


Nhưng Dialog ko chỉ pop up thông báo như thế mà còn có:

Dialog.ask(Dialog.D_YES_NO, "Có chắc chưa?")


Nghĩa là pop một câu hỏi "Có chắc chưa?" và cho 2 nút option Yes và No. Nếu user click Yes thì kết quả trả về là 1, còn No thì là 0 tương ứng với gái trị của Dialog.YES hoặc Dialog.NO

ví dụ đoạn code sau:

Code:
if(Dialog.ask(Dialog.D_YES_NO, "File exists....! Overwrite?") == Dialog.YES){
                     Dialog.alert("Saved.");
}


Mình pop up câu hỏi là File này tồn tại ....! Ghi đè lên không? và lấy giá trị trả về khi user click YES or NO và so sánh giá trị đó với Dialog.YES

Nếu đúng là == với Dialog.YES (tức là user click nút YES) thì thực hiện lệnh

Dialog.alert("Saved.");

Là pop up thông báo "Saved" (Đã lưu)


Rất hữu dụng khi muốn user confirm cái gì.

Còn tiếp....
136 bình luận
Chia sẻ

Xu hướng

keyspy
ĐẠI BÀNG
15 năm
Tiếp tục phát huy nào bác. Tài liệu lập trình cho BB đi nào
Bác ơi, nếu em đang dùng 8700 Os 4.5 thi e pải down bản JDK 4.5 pai khong?

Ko hẵn, những ko quan trọng. Cứ download bản 4.5. Trong JDE 4.5 có Simulators 4.2 nhưng đã work trên OS 4.2 thì gần như work trên OS 4.5.
Em là dân kế toán,nhưng cũng khoái công nghệ lắm.Bác làm soft nào hỗ trợ Tiếng Việt thì tuyệt vời
Có VNLogicMail bên phần mềm cho BlackBerry đó bạn.

Và trong topic này sẽ hướng dẫn các bạn đọc và hiển thị file txt Unicode dựng sẵn.
e vẫn theo dõi topic của Bác đây, đã làm theo hướng dẫn của helloworddemo nhưng mà lúc vào desktop manager/ browse tới helloworddemo.alx nhưng nó báo :
No additional applications déiiggnned for your device were found.
có phải nó báo đây không pải là 1 appli không bác?
Bạn Clean trước > sau đó build xong > generate ALX file.

Nhưng lưu ý là bạn nhập các thông tin trong TAB Genaral. Version trong TAB General và Project Type bên TAB Application là rất quan trọng. Nếu version ko đổi thì BDM ko upgrade hoặc ko có thì ko install.

CLDC là app chỉ chạy cho BB, MIDLET là chạy trên 1 số máy support JAVA.

Bạn thử nhập đủ thông số version và title và description nhé.

Khi nào trong BDM báo có là ok 😃
Thật ra khi bạn load 1 project có sẵn như helloworld thì nó đã set tương đối đầy đủ tất cả thông tin rồi. Bạn chỉ sửa Title hay Vendor(tác giả) hay description để cho n1o giống như của mình thôi.

Ngoài ra chưa cần thiết phải sửa gì cả nhé.
BB_ALL
TÍCH CỰC
15 năm
Đăng ký !

Mong các bác chỉ giáo cho em nhiều điều hơn ạ

Thaks
Vẫn theo dõi.........................
Bạn nào làm ko được cứ reply lỗi hay n1o báo như thế nào nhé.

Giờ Keeper i9 ngủ phát. Oải quá. Làm gần xong chương trình BBNotePad++

Sẽ public code cho mọi người tham khảo.

Nhưng trước tiên là phải chạy được cái helloworlddemo đã nhé.

Chúc thành công.
ZZZZZZZZ
ĐẠI BÀNG
15 năm
em cũng đang theoo dõi.nó ra 1 cái ji đó kích thích trí tò mò của em nhiều là em tham gia liền
Có cao thủ nào phụ 1 tay không nhỉ?
Có vẻ hơi khó hiểu nhỉ, em sắp thi học kì nên ko có thời gian xem mấy cái này, bác nào hướng dẫn có hình thì làm 1 bài nhé 😁
Khi mình build proj thì nó báo lỗi thế này

Code:
Building HelloWorldDemo
C:Program FilesResearch In MotionBlackBerry JDE 4.7.0binrapc.exe  -quiet  import=..libnet_rim_api.jar codename=comrimsamplesdevicehelloworlddemoHelloWorldDemo comrimsamplesdevicehelloworlddemoHelloWorldDemo.rapc warnkey=0x52424200;0x52525400;0x52435200 "C:Program FilesResearch In MotionBlackBerry JDE 4.7.0samplescomrimsamplesdevicehelloworlddemoHelloWorldDemo.java" "C:Program FilesResearch In MotionBlackBerry JDE 4.7.0samplescomrimsamplesdevicehelloworlddemoimghelloworld_jde.png"
I/O Error: Cannot run program "javac": CreateProcess error=2, The system cannot find the file specified
Error while building project
Bạn chỉ giúp!
Mình cài:
<!---Bổ sung----->
Mình đã tìm được cách sửa lỗi trên và buid thành công 😁
Cách làm: Sau khi cài đặt JDK xong thì thêm đường dẫn tới thư mục bin của JDK vào PATH Environment Variables của windows, trong trường hợp của mình là:
C:\Program Files\Java\jdk1.6.0_13\bin
sonle1986
ĐẠI BÀNG
15 năm
Các bác cho em hỏi. Em đã làm giống như bác keeper chỉ như trên nhưng vẫn bị lỗi như trên
(Building HelloWorldDemo
C:\Program Files\Research In Motion\BlackBerry JDE 4.5.0\bin\rapc.exe -quiet import=..\lib\net_rim_api.jar codename=com\rim\samples\device\helloworlddemo\HelloWorldDemo com\rim\samples\device\helloworlddemo\HelloWorldDemo.rapc warnkey=0x52424200;0x52525400;0x52435200 "C:\Program Files\Research In Motion\BlackBerry JDE 4.5.0\samples\com\rim\samples\device\helloworlddemo\HelloWorldDemo.java" "C:\Program Files\Research In Motion\BlackBerry JDE 4.5.0\samples\com\rim\samples\device\helloworlddemo\img\helloworld_jde.png"
I/O Error: Cannot run program "javac": CreateProcess error=2, The system cannot find the file specified
Error while building project)

Có bác nào có thể chỉ giúp em không ạ?
Xin cám ơn!
Mình đã thực hiện bước trên. Thiết lập cho phép Full control đối với thư mục "C:\Program Files\Java\jdk1.6.0_13\bin" luôn (win7). Nhưng khi build Helloworlddemo hiện thông báo lỗi:

C:\Program Files\Research In Motion\BlackBerry JDE 6.0.0\bin\rapc.exe -quiet codename=com\rim\samples\device\helloworlddemo\HelloWorldDemo com\rim\samples\device\helloworlddemo\HelloWorldDemo.rapc warnkey=0x52424200;0x52525400;0x52435200 import=..\lib\net_rim_api.jar "C:\Program Files\Research In Motion\BlackBerry JDE 6.0.0\samples\com\rim\samples\device\helloworlddemo\HelloWorldDemo.java" "C:\Program Files\Research In Motion\BlackBerry JDE 6.0.0\samples\com\rim\samples\device\helloworlddemo\img\helloworld_jde.png"
Error: Cannot run program "javac": CreateProcess error=2, The system cannot find the file specified
Error while building project

nhờ hướng dẫn thêm giúp mình. Bước Environment Variables mình có thể đặt variable name bất kỳ còn value là đường dẫn phải không? Thiết lập ở cả 2 mục user variables và system variables luôn?

Mới bắt đầu tìm hiểu. Mong bạn chỉ giáo thêm. Thks!
Setup PATH cho Java Compiler như hướng dẫn trong topic đầu tiên nhé 😃
lavie174
ĐẠI BÀNG
15 năm
bác chờ em chút, tối nay em cài lại Windows xong ngồi vọc vs các bác thử nhé ^^~
Nhân tiện nói luôn là sau khi hoàn thành bài tập này, thì sẽ tiếp bài tập khác bằng topic khác. Như vậy có thể sẽ đổi tên topic thành 1 serie bài tập viết ứng dụng cho BlackBerry từ thấp lên cao. Ai vô sau coi bài thấp, ai xong coi tiếp bài cao hơn.

Vậy sẽ thú vị và ai cũng sẽ viết được application cho mình.

Thân.

PS: Cám ơn tất cả các bạn đã quan tâm và ủng hộ nhé.
mấy bác cho em hỏi tí em mới mua được con bb8100 em tính up rom lên 4.5 nhưng em nghe nói khi up lên thì máy chạy rất chậm nên em con chưa dám up các bác có thẻ up nhưng ưu điểm và khuyết điểm khi up rom không dậy em cúm ơn trước nha!
Có lộn chuồng không ta............................................?
Đang hứng thú theo dõi, đọc đến đây hứng tụt xuống đến đầu gối, đi ngủ thôi.
Keeper online đến tối, có thắc mắc cứ reply nhé, sẽ reply back liên tục. Dzui là chính 😃
Những bạn nào build thành công rồi cài được vào máy rồi thì mày mò cho quen với BlackBerry JDE như đổi version/vendor của chương trình mình vừa viết.

Xem code của ví dụ đó xem tại sao nó lại ra như vậy, nó dùng cái gì, mình add thêm có được hay không.

Trong helloworlddemo có 2 cái chính mà bạn sẽ học là:

Cách viết 1 ứng dụng GUI(Graphic User Interface) là có giao diện mà mình thấy có screen, có menu, có button, có field...Khác với Command Line UI là chỉ có text, input hay out chỉ là chữ với chữ mà ko có hình ảnh.

Cơ bản là :

final class HelloWorldScreen extends MainScreen > Dòng này thể hiển đây là chương trình HelloWorldScreen có tính chất GUI. Và GUI của nó là một màn hình hiện full màn hình của thiết bị.

LabelField title = new LabelField("Hello World Demo" , LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH); > Dòng này dùng để tạo 1 Label có nội dung là "Hello World Demo"

setTitle(title); > Sau khi tạo Label thì gán Label này thành Title cho Application.

add(new RichTextField("Hello World!" ,Field.NON_FOCUSABLE)); > Sau đó thì dùng dòng này để add thêm cho cái MainScreen của chương trình 1 cái RichTextField, là khung soạn thảo và set nội dung cho nó tạm thời là
"Hello World!".

Code:
public void close()
    {
        // Display a farewell message before closing application.
        [B][COLOR=DarkRed]Dialog.alert("Goodbye!");[/COLOR][/B]
        [B]System.exit(0);[/B]
        
        super.close();
    }  


Đoạn code trên sẽ đảm nhiệm chức năng là pop up 1 cái Dialog nội dung là
"Goodbye!" khi người dùng Close application.

Dialog, Label và RichTextField là 3 cái mà bạn học được từ chương trình này.

Sau khi chạy được trên thiết bị thì bạn bắt đầu tập tham khảo API Doc, tốt nhất là :

Trong BlackBerry JDE bạn Chọn Help > API Reference


Sẽ hiện đủ tất cả API. Lưu ý trong số đó sẽ có cái dùng được cho OS khác nhau. Ví dụ bạn dùng JDE 4.7 thì nó sẽ hiện tất cả API cho OS 4.7 vì vậy nếu có cái bạn thấy nhưng khi sử dụng trong khi viết ứng dụng cho OS 4.5 thì báo lỗi Not Found chính al2 do OS 4.5 chưa support cái đó.

V2i vậy khi xem API Doc thì lưu ý xem nó được trang bị từ JDE version mấy. Như:

Since: JDK1.0Cái này nó ghi từ JDK 1.0 tức là từ lâu đã có. Chạy trên hầu hết các máy.

Như TouchEvent thì nó ghi:
Since: JDE 4.7.0Tức là chỉ máy nào OS 4.7 trở lên mới dùng được.

Bạn làm xong thì tập xem API Doc. Xem trước 3 cái:

Dialog
LabelField
RichTextField

Ví dụ trong helloworlddemo thì nó sử dụng: Dialog.alert("Thông báo");
Nhưng Dialog ko chỉ pop up thông báo như thế àm còn có:

Dialog.ask(Dialog.D_YES_NO, "Có chắc chưa?")


Nghĩa là pop một câu hỏi "Có chắc chưa?" và cho 2 nút option Yes và No. Nếu user click Yes thì kết quả trả về là 1, còn No thì là 0 tương ứng với gái trị của Dialog.YES hoặc Dialog.NO

ví dụ đoạn code sau:

if(Dialog.ask(Dialog.D_YES_NO, "File exists....! Overwrite?") == Dialog.YES){
Dialog.alert("Saved.");
}

Mình pop up câu hỏi là File này tồn tại ....! Ghi đè lên không? và lấy giá trị trả về khi user click YES or NO và so sánh giá trị đó với Dialog.YES

Nếu đúng là == với Dialog.YES (tức là user click nút YES) thì thực hiện lệnh

Dialog.alert("Saved.");

Là pop up thông báo "Saved" (Đã lưu)


Rất hữu dụng khi muốn user confirm cái gì.

Còn tiếp....
Mong các bác có thể sửa Yamee 1.3 dùng trên BB ko bị lỗi, phần mềm chat free này có lẽ tuyệt nhất trên mobile nhưng lại bị lỗi trên BB :p.

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019