Sqlite Blackberry网格布局定制

Sqlite Blackberry网格布局定制,sqlite,blackberry,gridview,user-interface,blackberry-jde,Sqlite,Blackberry,Gridview,User Interface,Blackberry Jde,如何在blackberry的grid manager布局中向网格元素添加边距。我希望它看起来与sqlite表上的外观完全相同,行和列具有整齐的边距。此外,我还希望为网格的每一行添加颜色。网格中的元素是从sqlite表字符串逐字符串获取的 我有以下代码: GridFieldManager网格=新的GridFieldManager 10,5,0; grid.addnew LabelFieldDate; grid.addnew LabelFieldBill; grid.addnew LabelFiel

如何在blackberry的grid manager布局中向网格元素添加边距。我希望它看起来与sqlite表上的外观完全相同,行和列具有整齐的边距。此外,我还希望为网格的每一行添加颜色。网格中的元素是从sqlite表字符串逐字符串获取的

我有以下代码:

GridFieldManager网格=新的GridFieldManager 10,5,0; grid.addnew LabelFieldDate; grid.addnew LabelFieldBill; grid.addnew LabelFieldReceipt; grid.addnew LabelField阵列; grid.addnewlabelfield; grid.setColumnPatting15; grid.setRowPadding20; 对于int i=1;i=0;k-{ 回路的System.out.PrintLnInner; 如果k==0 | | k==3{ System.out.println检索日期或叙述; grid.insertnew LabelFieldDR.getStringk{ 公共空间绘画图形{ graphics.setColorColor.BROWN; 超级绘画图形; } },i,j; }否则{ System.out.println检索其他值; 字符串p=+r.getIntegerk; grid.insertnew LabelFieldDP{ 公共空间绘画图形{ graphics.setColorColor.BROWN; 超级绘画图形; } },i,j; } 网格背景 BackgroundFactory.createLinearGradientBackground 颜色。金色,颜色。巧克力色。黄花,颜色。珊瑚色; } System.out.Printl退出时; } System.out.PrintLnExit sec用于; 打破 } System.out.PrintLn首先退出用于; 打破 } 通过上面的代码,我得到了一个线性渐变的背景色被应用到整个屏幕上。此外,不包括标题的网格元素为棕色

我现在想要实现的是为每一行提供单独的颜色。
任何了解此解决方案的人请分享。谢谢。

您可以通过两种方式实现颜色部分:

重写网格管理器绘制方法很困难 向每个单元格添加一个自定义VerticalFieldManager,该管理器只包含一个标签字段,而不是直接添加标签字段。这是IMHO最简单的方法。
要向获取的行添加颜色,可以使用以下代码:

  for (int k = 4; k >=0; k--)
                                        {

                                            System.out.println("Inside for loops");
                                            //Check for whether column retrieved is date or naraation
                                            if(k==0 || k==3)
                                            {
                                                System.out.println("Retrieving date or narration");
                                                grid.insert(new LabelField(r.getString(k))
                                                {
                                                    public void paint(Graphics graphics)
                                                    {
                                                    graphics.setColor(Color.GOLD);
                                                    super.paint(graphics);
                                                    }
                                                 },i,j);


                                            }  
                                            else
                                            {   
                                                //Check for whether column retrieved is bills,rec or id
                                                System.out.println("Retrieving other values"); 
                                                String p = "" + r.getObject(k);

                                                //if(r.getString(k) != null)
                                                //{ 
                                                grid.insert(new LabelField(p)
                                                {
                                                    public void paint(Graphics graphics)
                                                    {
                                                    graphics.setColor(Color.GOLD);
                                                    super.paint(graphics);
                                                    }
                                                 },i,j); 
                                               //  } 


                                            }   

以if-else的方式使用它可能有助于您的解决方案。

是的,我已经在r.object获取中尝试过。它非常适合行。谢谢!