Как поменять поле на фокус в ежевике - PullRequest
0 голосов
/ 02 июня 2011

Здравствуйте, сэр, я делаю приложение, в котором застрял в проблеме, пожалуйста, помогите мне ...

на одной странице я получаю данные с сервера и отображаю эти данные на странице. Теперь я использую Focusable для их выделения ... теперь мое требование заключается в том, чтобы при фокусировке на каких-либо данных поле должно было менять это имя какой фокус присутствует ..

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

static LabelField[] CrDrLabels;

    public LowerCreditors() throws Exception {

        super(VerticalFieldManager.VERTICAL_SCROLL);

        CrDrLabels = new LabelField[CrDrList.VendorNameArr.length];

        for (int i = 0; i < CrDrLabels.length; i++) {
            final int t = i;

            VerticalFieldManager hfm = new VerticalFieldManager(USE_ALL_WIDTH) {

                protected void sublayout(int Width, int Height) {

                    // TODO Auto-generated method stub

                    super.sublayout(Width, Height);

                    setPositionChild(getField(0), 15, 0);

                    setPositionChild(getField(1), Display.getWidth()
                            - getFont().getAdvance(CrDrList.VendorValArr[t])
                            - 10, 0);
                }
            };

            CrDrLabels[i] = new LabelField(CrDrList.VendorNameArr[i],
                    LabelField.FOCUSABLE | Field.USE_ALL_WIDTH) {
                protected boolean navigationClick(int status, int time) {
                    fieldChanged(this, 0);
                    return true;
                };
            };

            LabelField Value = new LabelField(CrDrList.VendorValArr[i]);
            CrDrLabels[i].setPadding(0, 170, 0, 0);

            hfm.add(CrDrLabels[i]);
            hfm.add(Value);

            add(hfm);


        }
    }

    public void fieldChanged(Field field, int context) {

        // TODO Auto-generated method stub
        for (int i = 0; i < CrDrList.VendorNameArr.length; i++) {
        getFieldWithFocus();
            if (field == CrDrLabels[i]) {

                String LN = CrDrLabels[i].getText();
                CrDrList.cname1 = LN;

                LabelField cname1 = CrDrLabels[i];
                CrDrList.selLad = CrDrLabels[i];

            }

        }
    }

и другой код

menu.add(new MenuItem("View last 5 days transaction", 20, 10) {
            public void run() {
                if(property.Status.equals("online"))
                {
                Viewlast5daystransaction();
                }

                else
                {
                    Dialog.alert("Please login Online to access the data..");
                }
            }

            String LedgerName = CrDrList.cname1;

            private void Viewlast5daystransaction() {
                //Dialog.alert("Last 5 Days Transaction");

                int resCode = 0;

                HttpConnection connection = null;
                try {
                    connection = getConn(property.LedgerDetailsURL);
                } catch (Exception e1) {
                    // TODO Auto-generated catch block
                    System.out.println(e1.getMessage());
                    e1.printStackTrace();
                }

                try {
                    resCode = connection.getResponseCode();
                } catch (Exception e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }

                if(resCode==0)
                {
                    Dialog.alert("Internet Connectivity not available.. Please try again later..");

                    TallyA TA;

                    try {
                        TA = new TallyA();

                        UiApplication.getUiApplication().popScreen();
                        UiApplication.getUiApplication().pushScreen(TA);
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                }

                sPostdata = "{\"tok\":\""
                        + CompanyList.tok;

                System.out.println("Postedddddd Dataaaaaaaaa" + sPostdata);
                try {
                    String response = LedgerSearchReport();

                    System.out.println("response" + response);

                    ParseBankdetails.parsebankdetails(response);

                    System.out.println("response : " + response);

                    if(response != null)
                    {
                    LastFiveDaysCr LF;
                    try {
                        LF = new LastFiveDaysCr();

                        UiApplication.getUiApplication().pushScreen(LF);
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    }

                    else
                    {
                        Dialog.alert("No Data..");
                        Creditiors LF;
                        try {
                            LF = new Creditiors();

                            UiApplication.getUiApplication().pushScreen(LF);
                        } catch (Exception e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }

                }
                catch (Exception e) {

                    e.printStackTrace();
                }

            }
        });

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

1 Ответ

1 голос
/ 03 июня 2011

Я думаю, вам следует реализовать логику в методе " onFoucus () " вместо использования " onfieldChanged () " для CrDrLabels [i];

...