2011-01-07 12 views
-2

In Blackberry möchte ich eine Klasse erstellen, die HorizontalFieldManager erweitert, so dass ich ein Label und ein Bild in der gleichen Zeile mit dem Label auf der linken Seite und dem Bild auf der rechten Seite anzeigen kann.
Ich möchte, dass der Benutzer mit dem HorizontalFieldManager interagieren kann, als wäre es ein einzelnes Feld. Ich möchte auch, dass jeder HorizontalFieldManager fokussierbar ist, wenn er einem VeriticalFieldManager hinzugefügt wird. Ich möchte auch die Clcik Action Events.BlackBerry angepasster HorizontalFieldManager

+1

Haben Sie Listfield für Brombeere gesehen ?? Kann es Ihre Anforderungen erfüllen? – Prasham

+0

Hallo MobileDev123 .Ich habe ein Programm mit ListField, TableView gestern selbst gemacht, aber es funktioniert gut auf Simulator 9800 aber Bot auf 9700.Ich will mein Programm auf allen Geräten zu arbeiten.So denke ich, eine benutzerdefinierte Klasse für that.Do schreiben Hast du irgendeinen anderen Vorschlag? – user469999

Antwort

1

Klingt wie Sie Ihre eigene Feld Klassen beginnen würden wollen schreiben, hier ist ein Beispiel für den Einstieg:


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); 
    } 
}