21 thg 4, 2012

[Lập trình BlackBerry Mobile] Làm việc với các UI Control đơn giản


Cách làm việc với các control giao diện đơn giản trong lập trình trên các thiết bị chạy hệ điều hành Black Berry.
Đầu tiên có thể chia làm 3 loại sau :
1. Field: như LabelField, CheckboxField ...
2. Manager.
3. Screen.
Như trên hình các bạn thấy, có các button, checkbox, bitmapField, editField là các thực thể chúng ta cần xử lý.
Đoạn code dưới đây sẽ cho bạn biết cách thực hiện tạo các đối tượng, xử lý các sự kiện trên đối tượng đó.
Mình dùng IDE: Blackberry java Plug-in 1.5 và emulator : BlackBerry 9930.
Code tạo ra các đối tượng và thêm các đối tượng vào Screen :


Bitmap bitmap = Bitmap.getBitmapResource("img/ic_logo.png");
BitmapField bitmapField = new BitmapField(bitmap, Field.FIELD_HCENTER);
add(bitmapField);

add(new SeparatorField());
add(new LabelField("Please enter your infomation ?"));

usernameField = new EditField("Username", "");
passwordField = new EditField("Password", "");
add(usernameField);
add(passwordField);

domainField = new ObjectChoiceField("Domain :", new String[] { "Home",
"Work" });
add(domainField);

rememberChechBox = new CheckboxField("Remember password ?", false);
add(rememberChechBox);

add(new SeparatorField());
clearButton = new ButtonField("Clear", ButtonField.CONSUME_CLICK);
loginButton = new ButtonField("Login", ButtonField.CONSUME_CLICK);

HorizontalFieldManager buttonManager = new HorizontalFieldManager(
Field.FIELD_RIGHT);
buttonManager.add(clearButton);
buttonManager.add(loginButton);
add(buttonManager);

Đăng ký xử lý sự kiện cho 2 button clear and login button như sau :
trước hết chúng ta implements interface : FieldChangeListener.
đăng ký sự kiện :


clearButton.setChangeListener(this);
loginButton.setChangeListener(this);

Và xử lý sự kiện trong phương thức  :   fieldChanged



public void fieldChanged(Field field, int context) {
// TODO Auto-generated method stub
if (field == clearButton) {
// Dialog.inform("clear button clicked!!!");
clearTextFields();
}
if (field == loginButton) {
// Dialog.inform("login button clicked!!!");
login();
}
}



  private void login() {
// TODO Auto-generated method stub
if (usernameField.getTextLength() == 0
|| passwordField.getTextLength() == 0) {
Dialog.inform("Please enter text field!!!");
} else {
String username = usernameField.getText();
String selectedDomain = (String) domainField.getChoice(domainField
.getSelectedIndex());
LoginSuccessScreen loginSuccessScreen = new LoginSuccessScreen(
username, selectedDomain);
UiApplication.getUiApplication().pushScreen(loginSuccessScreen);
}
}




private void clearTextFields() {
// TODO Auto-generated method stub
usernameField.setText("");
passwordField.setText("");
}



Vì BlackBerry thừa hưởng rất nhiều từ nền tảng JavaME nên nếu nắm chắc các điểm quan trọng của ngôn ngữ java bạn sẽ dễ nắm bắt hơn.




Phương thức tạo menu trong lập trình bb :

 protected void makeMenu(Menu menu, int instance) {
// TODO Auto-generated method stub
super.makeMenu(menu, instance);
menu.add(new MenuItem("Login", 20, 10){
public void run() {
// TODO Auto-generated method stub
login();
}
});
menu.add(new MenuItem("Clear", 10, 20){
public void run() {
clearTextFields();
}
});

}



Download project tại đây

Bạn nên thực hành trước khi import project. Nếu có thắc mắc gì, comment ở dưới bài viết này. Thân.






Không có nhận xét nào:

Đăng nhận xét

Bản beta đầu tiên

Sau 6 tháng cả team cặm cụi làm việc điên cuồng, bản alpha cũng được giới thiệu ra toàn bộ công ty và được testing nội bộ công ty mà thôi. ...