Androidでボタンにカーソルを止めたい
xpa4.9にてAndroidOSハンディターミナルのRIAアプリを開発しています。
OSはAndroid10です。
Windowsの場合は変数を割り当てたボタンにはカーソルが止まりますが
Androidでは止まらないようです。
他言語ではAndroidOSでもボタンにカーソルを止める事は出来たと思いますが
Magicでは出来ないんでしょうかね?
-
Teraさん、
手元にハンディターミナルがないので現物テストができないのですが、開発環境のデバッグ実行ではちゃんと止まりますね。
機種依存っていう可能性も含めて、ハンディターミナルをお使いの人からアドバイスがあるといいですね。
-
以下のような順に変数を割り当てたコントロールがある場合、
エディット1
ボタン
エディット2
エディット1でEnter押下してもボタンに止まらずにエディット2にカーソルが止まります。
Androidではボタンにカーソルを止めないのが基本動作のようです。
(例外はありますが、、、誤動作っぽく見えます)
-
Teraさん、
開発環境のデバッグ実行ではどうですか?
もしそれで正常に動作するとしたら、機種依存の可能性がありますね。
-
(私はモバイルRIAは、iOS系でしか納品しておりませんが)
いい対応ではないと思いますが、エディットのコントロール後処理に
CTRLGOTO(’ボタンのコントロール名',0,0)とか書けましたっけ? -
私も以下のような記述をする事はありました。

-
Tandaさん、
開発版をバックグラウンドモードで起動して実行モードに切替え
Androidハンディから開発機に接続しても同様です。
デバッグ実行というのは「オプション」→「Androidで実行」の事でしょうか?
実機を使った検証環境があるのでそこまでは試してません。
-
nkmtさん、
CtrlGoToは出来ますので、
上記の例だとエディット1のコントロール後等にCtrlGoTo('ボタン',0,0)で
エディット1でEnter押下時にボタンにカーソルが止まります。
ただ、Enterキーでの動作はAndroidハンディ内で制御しているようで
Magicで完全にハンドリングは出来ずAndroid制御の方が優先されます。
上記の例ですといったんエディット2にカーソル移動してからCtrlGoToが効いてボタンに移動します。
キー操作の話が出たのでついでに。
AndroidではMagicのキーボード割付ファイルを読み込んでいませんので
Enterや戻る(3ボタンの△)ボタン以外のキー操作による動きを実現したい場合は
メインプログラムや個々のプログラムでイベント設定する必要があります。
-
Teraさん、
デバッグ実行というのは、プログラムリポジトリから普通にF7で実行のことです。
ちなみに、TAB、TAB、TABと押して、1周回ってきたときには、カーソルは止まりますか?
それと、バーコードを読み込んだ後とかですと、Enterが自動で1回入る機種(あるいは設定)もあるかと思うのですが、そういった現象とは違いますか?つまり、Enterが合計で2回入ってしまっていて、次の項目に行ってしまっているとか。。。
ハンディターミナルではなくて、普通のAndroidスマホで実験できる環境はありませんか?
-
私はモバイルRIAの納品経験はiOSしかありません。
なので画面タッチ or Bluetooth接続バーコードリーダーでの読み取りでした。
その場合、バーコードリーダー側でバーコード読み取り後、Enter付与するようバーコードリーダー側で設定しておりました。
※ちなみにそのインタラクティブ リッチクライアントタスクを見てみたら、TAB順序の設定は無効になっていました。
ハンディターミナルはCASIOのAndroidで、握って操作するタイプで画面が小さくテンキーなどが付いた物を1度メーカーからお借りした事はあります。
今回のTeraさんのはどのような処理なのかわかりませんが、以下想像を書くと話をこんがらせてしまうかもしれませんが、想像です。
ハンディターミナルを右手で持って、
バーコード照射して、商品を特定、
あるいはそうではなくて1つめのエディットで数字入力、Enter
ボタンにパーキング(決定)、
2つ目のエディットで数字入力項目で数字を親指で物理キー入力して、
Enterボタンも親指で押したりとかそんな事を想像しました。
まあとにかく1つ目のエディットの後、ボタンにパーキングしたいのですね。
以下
モバイルアプリケーション
開発ガイド からの引用で気になる部分です。
-
Tandaさん
F7実行はWindows上なので正常にエディット1→ボタン→エディット2にカーソルが止まります。
AndroidハンディにTabキーが無かったのでTab動作までは試してませんでした。
バーコードは読み込まず普通にエディット1でEnter押下した時の動きです。
普通のAndroidスマホは社内に無く社内LANのセキュリティに引っ掛かるので接続できず試せません。普通のAndroidスマホで試す場合はBlueToothとかでキーボードを接続するんですかね?
-
nkmtさん
親画面で最初にカーソルがエディットに止まり入力後Enter押下すると
カーソルがボタンへ移動しそのままEnter押下すると子画面を表示
という画面を作りたかったわけですが、まあ何とかなりました。
開発ガイドでいうところの「コントロール上でのパーク」の制限のようです。
ただ、プログラムの作りによってはボタンに止まる時もあるので、悩ましい限りですね。
-
Teraさん 情報ありがとうございます。
実現したい画面の件、わかります。
私もそうならそれで諦めて、最初のエディットのコントロール後で
入力エラーが無くて、終了イベントじゃなかった時は子画面表示にかえたかもしれません。
私はモバイルはiOSばかりでしたが、iPadなどでxpaをお使いのお客様から
iPad高くなったのでAndroidにしていいですか?とお客様談がありましたので、
当方はAndroidでの客先稼働は無いですが、何かあるかもしれませんとリスクがある事は
お伝えしました。iPad1台分でAndroid3台買えるとお客様おっしゃってました。 -
Teraさん、
普通のAndroidが「社内LANのセキュリティに引っ掛かる」という状況ですと開発ができないと思いますが、Magicのメニューにある「Androidで実行」という機能は、USBで接続して実行できます。
サインインしてコメントを残してください。
コメント
13件のコメント