我的应用程序页面下方有一个 2 按钮,在Image
实现字段更改侦听器的屏幕中我已经在侦听器中实现了此按钮的代码,但按钮仍然没有按预期反应
这是有罪的班级
package com.client.grid;
import net.rim.device.api.synchronization.UIDGenerator;
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.Display;
import net.rim.device.api.ui.DrawStyle;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Ui;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.XYEdges;
import net.rim.device.api.ui.component.BitmapField;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.RichTextField;
import net.rim.device.api.ui.container.HorizontalFieldManager;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.PopupScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;
import net.rim.device.api.ui.decor.Border;
import net.rim.device.api.ui.decor.BorderFactory;
public class MyScreen2 extends MainScreen implements FieldChangeListener {
// Image height of central image
private int mImageHeight = 240;
// Image width of central image.
private int mImageWidth = 320;
ButtonField __button1;
ButtonField __button2;
public MyScreen2(Bitmap _image) {
final Bitmap backgroundBitmap = Bitmap
.getBitmapResource("Artmover-background.jpg");
HorizontalFieldManager horizontalFieldManager = new HorizontalFieldManager(
HorizontalFieldManager.USE_ALL_WIDTH
| HorizontalFieldManager.USE_ALL_HEIGHT) {
// Override the paint method to draw the background image.
public void paint(Graphics graphics) {
// Draw the background image and then call super.paint
// to paint the rest of the screen.
graphics.drawBitmap(0, 0, Display.getWidth(),
Display.getHeight(), backgroundBitmap, 0, 0);
super.paint(graphics);
}
};
HorizontalFieldManager horizontalFieldManagerImage = new HorizontalFieldManager();
Bitmap __scaledBmp = new Bitmap(mImageWidth, mImageHeight);
_image.scaleInto(0, 0, _image.getWidth(), _image.getHeight(),
__scaledBmp, 0, 0, mImageWidth, mImageHeight,
Bitmap.FILTER_BILINEAR);
BitmapField __bmpField = new BitmapField(__scaledBmp);
horizontalFieldManagerImage.add(__bmpField);
HorizontalFieldManager horizontalFieldManagerButtons = new HorizontalFieldManager();
__button1 = new ButtonField("Approve");
// Set margin to the left to displace button screen's left margin.
__button1.setMargin(0, 0, 0, 20);
horizontalFieldManagerButtons.add(__button1);
__button2 = new ButtonField("Not Approve");
// Set margin to the left to displace button from above button
__button2.setMargin(0, 0, 0, 20);
horizontalFieldManagerButtons.add(__button2);
// Set margin at the top, to displace the central image.
horizontalFieldManagerImage.setMargin(70, 0, 0, 0);
// Set top margin to displace buttons from above image
horizontalFieldManagerButtons.setMargin(30, 0, 0, 0);
VerticalFieldManager verticalFieldManagerImage = new VerticalFieldManager();
verticalFieldManagerImage.add(horizontalFieldManagerImage);
verticalFieldManagerImage.add(horizontalFieldManagerButtons);
// Set margin at the top to displace contents abit down.
verticalFieldManagerImage.setMargin(30, 0, 0, 0);
horizontalFieldManager.add(verticalFieldManagerImage);
add(horizontalFieldManager);
}
class CustomDialog extends PopupScreen implements FieldChangeListener {
public RichTextField rd;
ButtonField btnOK, btnCancel;
String url;
public CustomDialog() {
super(new VerticalFieldManager());
rd = new RichTextField();
rd.setEditable(true);
XYEdges thickPadding = new XYEdges(10, 10, 10, 10);
Border roundedBorder = BorderFactory.createRoundedBorder(
thickPadding, Border.STYLE_SOLID);
rd.setBorder(roundedBorder);
btnOK = new ButtonField("OK");
btnOK.setChangeListener(this);
btnCancel = new ButtonField("Cancel");
btnCancel.setChangeListener(this);
add(rd);
add(btnOK);
add(btnCancel);
}
public void fieldChanged(Field field, int context) {
if (field == btnOK) {
System.out.println("ok button has been pressed" + rd.getText());
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
UiApplication.getUiApplication().invokeLater(
new Runnable() {
public void run() {
String url = "link/commentput.php?&c="
+ rd.getText()
+ "&id="
+ MyApp.user
+ "&u="
+ GridImageManager.url;
final String me = NTServices
.javaServerGet(url, 0);
close();
UiApplication.getUiApplication()
.pushScreen(new MyScreen());
}
});
}
});
} else if (field == btnCancel) {
close();
}
}
public void close() {
close();
super.close();
}
}
public void fieldChanged(Field field, int context) {
if (field == __button1) {
UiApplication.getApplication().invokeLater(new Runnable() {
public void run() {
String url = "http://link.php?&c=approved&id="
+ MyApp.user + "&u=" + GridImageManager.url;
final String me = NTServices.javaServerGet(url, 0);
UiApplication.getUiApplication().pushScreen(new MyScreen());
}
});
} else if (field == __button2) {
UiApplication.getApplication().invokeLater(new Runnable() {
public void run() {
UiApplication.getUiApplication().pushScreen(new CustomDialog());
}
});
}
}
}
有人能指出做错了什么吗谢谢