- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要在文本右侧带有图像和复选框的列表字段。我在左侧获得了图像,但无法在右侧获得复选框。如果可能,复选框应该是不可见的。应该只看到刻度线。我要实现
Image text1 chechbox
Image text2
Image text3 checkbox
所有列表项的图像应该相同。
public final class ListfieldDemo1 extends MainScreen
{
private Vector _listElements;
ListField list;
private ListField _checkList;
public ListfieldDemo1()
{
// Set the displayed title of the screen
super(Manager.NO_VERTICAL_SCROLL);
add(new LabelField("Fruits List", LabelField.FIELD_HCENTER));
add(new SeparatorField());
setTitle("ListField with images and checkbox");
_listElements = new Vector();
add(new SeparatorField());
list = new ListField();
ListCallback _callback = new ListCallback(this);
list.setCallback(_callback);
list.setSize(4);
int index = list.getSelectedIndex();
add(list);
createField();
}
protected void createField()
{
String itemOne = "Apple";
String itemTwo = "Blackberry";
String itemthree ="Grapes";
String itemfour = "Banana";
_listElements.addElement(itemOne);
_listElements.addElement(itemTwo);
_listElements.addElement(itemthree);
_listElements.addElement(itemfour);
reloadList();
}
private void reloadList() {
list.setSize(_listElements.size());
}
public boolean invokeAction(int action)
{
switch (action)
{
case ACTION_INVOKE: // Trackball click.
return true;
}
return super.invokeAction(action);
}
class ListCallback implements ListFieldCallback
{
private static final int LEFT_OFFSET = 10;
private static final int TOP_OFFSET = 10;
ListfieldDemo1 listfieldDemo1;
public ListCallback(ListfieldDemo1 listfieldDemo1)
{
this.listfieldDemo1 = listfieldDemo1;
}
public void drawListRow(ListField listField, Graphics g, int index,
int y, int w) {
String text = (String)_listElements.elementAt(index);
g.drawText(text, 60, y + 5, 0, w);
text = (String) _listElements.elementAt(index);
Bitmap bitm = Bitmap.getBitmapResource("bullet_arrow.png");
int xpos = LEFT_OFFSET;
int ypos = TOP_OFFSET + y;
w = bitm.getWidth();
int h = bitm.getHeight();
g.drawBitmap(xpos, ypos, w, h, bitm, 0, 0);
xpos = w + 20;
}
public Object get(ListField listField, int index) {
// TODO Auto-generated method stub
return null;
}
public int getPreferredWidth(ListField listField) {
// TODO Auto-generated method stub
return 0;
}
public int indexOfList(ListField listField, String prefix, int start) {
// TODO Auto-generated method stub
return 0;
}
}
}
提前致谢。
最佳答案
我想你想要像下图这样的东西:
代码如下:
import java.util.Vector;
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;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.MenuItem;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.ListField;
import net.rim.device.api.ui.component.ListFieldCallback;
import net.rim.device.api.ui.component.Menu;
import net.rim.device.api.ui.component.SeparatorField;
import net.rim.device.api.ui.container.MainScreen;
public final class ListDemoScreen extends MainScreen {
private Vector _listElements;
ListField list;
private ListField _checkList;
private MenuItem _toggleItem;
public ListDemoScreen() {
super(Manager.NO_VERTICAL_SCROLL);
// Set the displayed title of the screen
setTitle("List Demo");
add(new LabelField("Fruits List", LabelField.FIELD_HCENTER));
add(new SeparatorField());
_listElements = new Vector();
add(new SeparatorField());
list = new ListField();
ListCallback _callback = new ListCallback(this);
list.setCallback(_callback);
list.setSize(4);
add(list);
createField();
}
protected void createField() {
ChecklistData itemOneCheckList = new ChecklistData("Apple", false);
ChecklistData itemTwoCheckList = new ChecklistData("Blackberry", false);
ChecklistData itemThreeCheckList = new ChecklistData("Grapes", false);
ChecklistData itemFourCheckList = new ChecklistData("Banana", false);
_listElements.addElement(itemOneCheckList);
_listElements.addElement(itemTwoCheckList);
_listElements.addElement(itemThreeCheckList);
_listElements.addElement(itemFourCheckList);
reloadList();
}
private void reloadList() {
list.setSize(_listElements.size());
}
public boolean invokeAction(int action) {
switch (action) {
case ACTION_INVOKE: // Trackball click.
int index = list.getSelectedIndex();
ChecklistData data = (ChecklistData) _listElements.elementAt(index);
data.toggleChecked();
_listElements.setElementAt(data, index);
list.invalidate(index);
return true; // We've consumed the event.
}
return super.invokeAction(action);
}
class ListCallback implements ListFieldCallback {
ListDemoScreen listDemoScreen;
public ListCallback(ListDemoScreen listDemoScreen) {
this.listDemoScreen = listDemoScreen;
}
public void drawListRow(ListField list, Graphics g, int index, int y,
int w) {
ChecklistData data = (ChecklistData) _listElements.elementAt(index);
Bitmap bitmapImage = null;
Bitmap bitmapTick = null;
int widthImage=0;
int heightImage=list.getRowHeight(index);
int widthTick=0;
int heightTick=list.getRowHeight(index);;
int maxHeight = list.getRowHeight(index);
int xpos=0;
int ypos=y;
bitmapImage = Bitmap.getBitmapResource("earth-icon.png");
bitmapTick = Bitmap.getBitmapResource("ok-icon.png");
if(bitmapImage != null && bitmapTick != null) {
widthImage = bitmapImage.getWidth();
widthTick = bitmapTick.getWidth();
heightImage = bitmapImage.getHeight();
heightTick = bitmapTick.getHeight();
maxHeight = (heightTick > heightImage) ? heightTick : heightImage;
list.setRowHeight(index, maxHeight);
g.drawBitmap( xpos, ypos+(list.getRowHeight(index)-heightImage)/2, widthImage, heightImage, bitmapImage, 0, 0 );
if(data.isChecked()) {
g.drawBitmap( getWidth()-widthTick-2, ypos+(list.getRowHeight(index)-heightTick)/2, widthTick, heightTick, bitmapTick, 0, 0 );
}
}
ChecklistData currentRow = (ChecklistData) this.get(list, index);
StringBuffer rowString = new StringBuffer();
rowString.append(currentRow.getStringVal());
// Draw the text.
g.drawText(rowString.toString(), xpos + widthImage, y + (list.getRowHeight(index)-getFont().getHeight())/2, 0, -1);
}
public Object get(ListField list, int index) {
return _listElements.elementAt(index);
}
public int indexOfList(ListField list, String prefix, int string) {
return _listElements.indexOf(prefix, string);
}
public int getPreferredWidth(ListField list) {
return Display.getWidth();
}
}
private class ChecklistData {
private String _stringVal;
private boolean _checked;
ChecklistData(String stringVal, boolean checked) {
_stringVal = stringVal;
_checked = checked;
}
private String getStringVal() {
return _stringVal;
}
private boolean isChecked() {
return _checked;
}
// Toggle the checked status.
private void toggleChecked() {
_checked = !_checked;
}
}
protected void makeMenu(Menu menu, int instance) {
Field focus = UiApplication.getUiApplication().getActiveScreen()
.getLeafFieldWithFocus();
if (focus == _checkList) {
menu.add(_toggleItem);
}
super.makeMenu(menu, instance);
}
}
为earth-icon.png
使用您自己的图标和 ok-icon.png
(勾选标记)。
关于blackberry - ListField 中文本右侧的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10517065/
我正在开发一个 BlackBerry 应用程序,该应用程序在应用程序启动时需要启动画面。我还没有找到任何实现闪屏的例子。 我在应用程序的启动类中使用了一个计时器来显示启动图像。 有没有其他方法可以解决
有没有办法从BlackBerry OS中的代码启用Wifi? 谢谢 - 编辑 - 我只想添加代码片段以检查是否已启用WiFi: if ( (RadioInfo.getActiveWAFs() & Ra
Blackberry PlayBook的网络浏览器的User-Agent字符串是什么? 最佳答案 OS 1.0-根据RIM,它是 Mozilla/5.0 (PlayBook; U; RIM Table
我为黑莓做了简单的 java 应用程序,但在构建时出现以下错误。 "Building Hisantosh C:\BlackBerryJDE4.5.0\bin\rapc.exe -quiet impo
我们有几个黑莓应用程序,现在正在努力为 BB 10 做准备。这些应用程序是通过 Eclipse 和/或 RIM IDE 工具用 Java 制作的。然而,当我去 https://developer.bl
我已经实现了黑莓手机推送启动器的前4个步骤 发送推送请求 BlackBerry服务返回响应 BlackBerry服务将数据推送到设备上指定的特定端口 设备返回对BlackBerry服务的响应 现在,我
我有一个与黑莓 Storm 配对的蓝牙耳机。每当我打开/关闭耳机时, Storm 都会显示耳机已连接或断开连接的消息,并更新蓝牙指示灯图标。我想在我的应用程序中检测到耳机连接更改事件。我如何捕获事件变
如何在 BlackBerry 中实现图像按钮? 最佳答案 给你,完整的代码: import net.rim.device.api.system.Bitmap; import net.rim.devic
我下载了 BlackBerry 的 Eclipse 插件,它默认运行 BlackBerry OS 7。我需要针对 BlackBerry OS 6 和 OS 7 设备。这是否也适用于 BlackBerr
我正在尝试为黑莓浏览器找到一个好的模拟器,以便我可以尝试我的黑莓应用程序。 有没有在线版本所以我不必下载和安装一个? 或者在更糟糕的情况下,我应该下载哪一个? 谢谢, 最佳答案 RIM 提供了一些模拟
我正在编写一个自定义对话框窗口来显示长时间操作的状态,并希望使用 BB native 对话框中使用的小计时器图标(OS >= 4.6 上的小方形时钟)。 如何在我的对话框中使用此图形? 我已经熟悉布局
我想自定义出现在树 View 左侧的 (+) 符号 是否可以 我想在那个地方放置图像 我尝试自定义和搜索论坛以及黑莓论坛,其中一个说这是不可能的,但后来 我得到了一个链接,如下所示,这是可能的 htt
我在应用商店中有一个BlackBerry应用。我想从网页链接到该应用程序,因此,如果用户在浏览器中转到该页面并单击链接,则将启动BlackBerry AppWorld应用程序,并且用户将能够轻松下载
我正在尝试使用 Java + JDE 以编程方式拒绝黑莓上的调用。 我正在拦截 callIncoming事件,在那里我需要做一些事情来拒绝来自特定号码的调用。 有谁知道这是怎么做到的吗? 最佳答案 我
我想知道为 BlackBerry 开发的人是如何在他们的应用程序中管理屏幕的。最常见的做法(也是我正在使用的做法)似乎只是实例化并从当前屏幕推送新屏幕。我见过的另一个选项是使用 Main Applic
我为 BlackBerry 开发了一个订单处理应用程序。当我查看 bin 文件夹时,我看到 100 多个 .class文件。 我创建了一个用于添加新客户端的主屏幕类。屏幕有 7 个 LabelFiel
创建黑莓应用程序。 只是一个初学者,我已经搜索过但无法找到解决方案,尽管它很常见。如果有人能告诉我如何在 Java 中为黑莓应用程序显示密码提示和数字提示。 提前致谢!! 最佳答案 According
我在应用程序中使用树 View 来显示黑莓中的客户端服务器数据。我通过使用可扩展的 ListView 项目在 android 应用程序中实现了同样的事情。但在这里我面临两个问题 一种是: 我想添加父节
这是一个愚蠢的问题,但我知道黑莓的经典风格 JDE 开发,但我从未尝试过使用 WebWorks。 BB 网站表示可以为智能手机(OS 6.0+)和平板电脑构建应用程序 - 听起来很棒,但价格是多少?
我有兴趣为 BlackBerry 设备开发应用程序,想知道他们是否支持为应用程序开发人员提供演示版或测试版的概念?通过这个,我的意思是能够将我的应用程序的测试版或演示版部署到有限/受限的受众,例如业务
我是一名优秀的程序员,十分优秀!