質問

JSON URLからオブジェクトのリストを取得し、ラベルフィールドとセパレータを追加してリストのように表示しています。次に、各ラベルをクリック可能にして、各ラベルが別のURLにリダイレクトできるようにしたいと思います。ラベルをクリックすると、対応するURLのJSONデータを使用して、個別の画面を開く必要があります。だから、誰もがこれを達成する方法を教えてもらえますか。私はそれを行う方法のサンプルコードを受け取ったら本当に感謝しています...ここに私がやったサンプルコードがあります...

public VerticalFieldManager showShoppingList(){
        try {
            jsArrShpList=new JSONArray(strShopping);
            totalList= jsArrShpList.length();
            for(int i=0;i<totalList;i++){
                 String strAlert=jsArrShpList.get(i).toString();
                 JSONObject joAlert=new JSONObject(strAlert);
                 String shoppingList = joAlert.get("CategoryName").toString();
                 LabelField shops  = new LabelField(shoppingList);
                 VerticalFieldManager vfmListRow=new VerticalFieldManager();
                 vfmListRow.add(shops);
                 vfmListRow.add(new SeparatorField());
                 vfmShpList.add(vfmListRow);

            }

            return vfmShpList;
役に立ちましたか?

解決

通常、フォーカスを受け入れたり、イベントをクリックしたりしないLabelfieldsの束を使用する代わりに、 リストフィールド 画面上?それはあなたが探しているもののもののようです。

Labelfieldアプローチを使用したい場合は、いくつかのことをする必要があります。まず、Labelfieldを作成するときは、 Field.FOCUSABLE フォーカスを受け入れるようにスタイル:

LabelField shops  = new LabelField(shoppingList, Field.FOCUSABLE);

これで、Labelfieldフィールドは、1つを設定すると、Changeリスナーに呼び出されないため、親マネージャーのクリックイベントとキーイベントを聞く必要があります。これらのクリックまたはキーイベントは、マネージャーの任意のフィールドの場合があるため、イベントが発生したときにどのフィールドに焦点を合わせているかを確認し、フォーカスのフィールドに基づいて適切なハンドラーを実行する必要があります。

コード例:

VerticalFieldManager vfmListRow = new VerticalFieldManager() {
    protected boolean navigationClick(int status, int time) {
        Field field = getFieldWithFocus();
        if (field != null && field.equals(shops)) {
            System.out.println("shops field clicked");
            return true;
        }
        return super.navigationClick(status, time);
    }

    protected boolean keyChar(char key, int status, int time) {
        Field field = getFieldWithFocus();
        if (key == Characters.ENTER && field != null && field.equals(shops)) {
            System.out.println("shops field clicked");
            return true;
        }
        return super.keyChar(key, status, time);
    }
};
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top