我使用以下代码显示一个丰富的列表。
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.system.*;
import net.rim.device.api.ui.component.table.*;
public class RichListDemo extends UiApplication
{
public static void main(String[] args)
{
RichListDemo theApp = new RichListDemo();
theApp.enterEventDispatcher();
}
public RichListDemo()
{
pushScreen(new RichListScreen());
}
private static class RichListScreen extends MainScreen
{
public RichListScreen()
{
super(Manager.NO_VERTICAL_SCROLL);
setTitle("Rich List Demo");
add(new LabelField("BlackBerry Devices", LabelField.FIELD_HCENTER));
add(new SeparatorField());
Manager mainManager = getMainManager();
RichList list = new RichList(mainManager, true, 2, 1);
Bitmap bitmap1 = Bitmap.getBitmapResource("9500.png");
Bitmap bitmap2 = Bitmap.getBitmapResource("9000.png");
list.add(new Object[] {bitmap1, "Device 1", "BlackBerry Smartphone 9500", "Description of Device 1."});
list.add(new Object[] {bitmap2, "Device 2", "BlackBerry Smartphome 9000", "Description of Device 2."});
}
}
}
如何在Rich List中实现点击事件?当我点击列表时,我想显示一个稀释盒。有可能吗?。
答案 0 :(得分:4)
您无法确定RichList
中的所选行。如果您想要点击功能,可以使用TableView
代替RichList
。 RichList
应该用于您要显示的只读项目。如果要捕获输入和/或允许用户进行选择,则应使用TableView
。
您可以使用this链接创建表格视图并在行中添加可点击的字段
答案 1 :(得分:1)
是的,这是可能的。请参阅以下代码:
final RichList list = new RichList(vfm, false,3, 1);
list.add(new Object[] {"jak się masz", "كيف حالك؟", "Description of Device 1." ,new SeparatorField()});
list.add(new Object[] { "Device 2", "BlackBerry Smartphome 9000", "Description of Device 2.",new SeparatorField()});
list.add(new Object[] { "Device 3", "BlackBerry Smartphome 9000", "Description of Device 3.",new SeparatorField()});
list.add(new Object[] { "Device 4", "BlackBerry Smartphome 9000", "Description of Device 4.",new SeparatorField()});
list.add(new Object[] { "Device 5", "BlackBerry Smartphome 9000", "Description of Device 5.",new SeparatorField()});
list.add(new Object[] { "Device 6", "BlackBerry Smartphome 9000", "Description of Device 6.",new SeparatorField()});
list.setFocusPolicy(TableController.ROW_FOCUS);
list.setCommand(new Command(new CommandHandler()
{
/**
* @see net.rim.device.api.command.CommandHandler#execute(ReadOnlyCommandMetadata, Object)
*/
public void execute(ReadOnlyCommandMetadata metadata, Object context)
{
Dialog.alert("executed!");
TableModel tableModel = list.getModel();
Object[] objArray = (Object[])tableModel.getRow(list.getFocusRow());
int DISPLAY_NAME = 0;
Dialog dialog = new Dialog(Dialog.D_OK, (String)objArray[DISPLAY_NAME], 0, null, 0 );
dialog.doModal();
}
}));