Перенос текста в строке ListField на BlackBerry - PullRequest
0 голосов
/ 07 января 2011

Как мне обернуть текст в строку ListField?Я показываю изображение слева и текст справа.Часть более длинного текста выходит из строки ListField, и я хотел бы, чтобы он был обёрнут, а не обрезан.

Ответы [ 3 ]

2 голосов
/ 07 января 2011

Я также сталкиваюсь с той же проблемой, что и мои требования, такие же, как и у вас, но в тех случаях, когда вы не используете изображения, но все еще хотите использовать поле пользовательской метки для передачи некоторых параметров, вы можете использовать мой способ.

import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.Color;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.Font;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Keypad;
import net.rim.device.api.ui.component.LabelField;

public class MyCustomSubscriptionLabelField extends LabelField {

    private Bitmap image = null;
    private String customName = null;
    private String key;
    private String programName, startTime;

    // Edited by vivek on 2010-11-18 to convert Basic Tv as Live tv i.e mapping
    public MyCustomSubscriptionLabelField(String key, String customName,
            long style) {
        super("", FOCUSABLE);
        if (customName == null)
            this.customName = key;
        else
            this.customName = customName;
        this.key = key;
    }

    public MyCustomSubscriptionLabelField(String programName, String startTime,
            String customName, long style) {
        super("", FOCUSABLE);
        this.programName = programName;
        this.startTime = startTime;
    }

    public void setText(String text, int offset, int length) {
        // super.setText(customName, image.getWidth(), customName.length());
        super.setText(text);
    }

    public void paint(Graphics graphics) {

        super.paint(graphics);
    }

    public String getCustomName() {
        return customName;
    }

    public String getKey() {
        return key;
    }

    protected boolean navigationClick(int status, int time) {
        fieldChangeNotify(0);
        return true;
    }

    protected boolean keyChar(char character, int status, int time) {
        if (character == Keypad.KEY_ENTER) {
            fieldChangeNotify(0);
            return true;
        }
        return super.keyChar(character, status, time);
    }

    public void setProgramName(String programName) {
        this.programName = programName;
    }

    public String getProgramName() {
        return programName;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getStartTime() {
        return startTime;
    }
}

для использования этого пользовательского класса поля метки используйте setText для установки любого длинного текста;

customSubscriptionLabelField[j]= 
    new CustomSubscriptionLabelField("","Value tht u want to pass and retrive",style);
customSubscriptionLabelField[j].setText("Any Long text will be wrapped to new line ",0,text.length());

Надеюсь, это поможет вам в некоторых местах

0 голосов
/ 26 июня 2011

Я нашел ответ на этот вопрос на форумах поддержки разработчиков Blackberry и подумал, что он может быть вам полезен http://supportforums.blackberry.com/t5/Java-Development/Can-drawText-wrap-text-into-multiple-lines/m-p/258817#M42493

0 голосов
/ 08 января 2011

Эй, я нашел еще одно решение нашей проблемы.добавить изображение в hfm1 добавить поле метки в hfm2 теперь добавить hfm1 и hfm2 в vfm теперь добавить эту vfm на экран, это будет действовать как поле метки с изображением и текстом и, скорее всего, будет служить нашей цели

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...