2011-01-07 13 views
-2

BlackberryでHorizo​​ntalFieldManagerを拡張するクラスを作成して、ラベルと画像を同じ行に、左のラベルと右の画像で表示できるようにします。
私は、ユーザーがHorizo​​ntalFieldManagerと1つのフィールドのようにやりとりできるようにしたいと考えています。また、VeriticalFieldManagerに追加したときに、各Horizo​​ntalFieldManagerにフォーカスを設定する必要があります。私はまた、clcikのアクションイベントが必要です。BlackBerryカスタマイズされたHorizo​​ntalFieldManager

+1

あなたはブラックベリーのためのListFieldをを見たことがありますが?それはあなたの要件を満たすことができますか? – Prasham

+0

こんにちはMobileDev123。私はListField、昨日のTableViewを使用してプログラムを完了しましたが、それはシミュレータ9800でも正常に動作しますが、9700上のボットです。私のプログラムはすべてのdevices.Soで動作するように私はthat.Do他の何かを持っていますか? – user469999

答えて

1

は、ここでは、あなたがあなた自身のフィールドクラスの書き込みを開始したいことがありますように聞こえるあなたが始めるために例を示します


import net.rim.device.api.system.Bitmap; 
import net.rim.device.api.system.Display; 
import net.rim.device.api.ui.Field; 
import net.rim.device.api.ui.Graphics; 

public class SimpleField extends Field { 

    private String label; 
    private Bitmap image; 
    private int fieldWidth; 
    private int fieldHeight; 
    private boolean hover = false; 
    private int focusColor = 0xcccccc; 

    public SimpleField(String label, Bitmap image) { 
     super(Field.FOCUSABLE); 
     this.label = label; 
     this.image = image; 
     fieldWidth = Display.getWidth(); 
     fieldHeight = image.getHeight(); 
    } 

    protected void onFocus(int direction) { 
     hover = true; 
     invalidate(); 
     super.onFocus(direction); 
    } 

    protected void onUnfocus() { 
     hover = false; 
     invalidate(); 
     super.onUnfocus(); 
    } 

    public int getPreferredWidth() { 
     return fieldWidth; 
    } 

    public int getPreferredHeight() { 
     return fieldHeight; 
    } 

    protected void layout(int width, int height) { 
     setExtent(fieldWidth, fieldHeight); 
    } 

    protected void paint(Graphics graphics) { 
     if(hover){ 
      graphics.setColor(focusColor); 
      graphics.fillRect(0, 0, fieldWidth, fieldHeight); 
     } 
     graphics.drawText(label, 0, (fieldHeight - graphics.getFont().getHeight())/2); 
     graphics.drawBitmap(graphics.getFont().getAdvance(label), 0, image.getWidth(), image.getHeight(), image, 0, 0); 
    } 
} 
関連する問題