iアプリで連続して判定を行うときの誤動作。
iアプリで低次元イベント処理?をしてます。
public void processEvent( int type , int param ){
if( imageIndex == SS ){
if( ( type == Display.KEY_PRESSED_EVENT ) && ( param == Display.KEY_SOFT1 ) )
toMenu();
・・・・
のようにボタンの押し判定をしたいのです。
このプログラムは画像をpaintメソッドの中で書き換える
だけのプログラムでボタンの判定によって
画像を書き換えて一種のXMBのように動作させようとしています。
iアプリのメニュー部分の試作なんです。
ただ、連続してボタン判定が行われてしまうので困っています。
今、画像ごとに画像番号があり、その画像番号をif文で判定して
画像切り替えを行うのですが、if文の中で
プロセスイベントのでかいくくり{
・・・
if(ログイン画面){
決定ボタン→ログインしたメニュー画像へ
このとき、ログインフラグ・メニューフラグtrueへ。
}
if(画像番号1){
ソフトキー1なら
→ メニューに戻る
}
if(画像番号2){
ソフトキー1なら
→ メニュー戻る
}
if(ログインフラグ){
if(ソフトキー1)
投稿画像画面へ
「その他」
・上下左右が押されたら画像切り替える。
・決定ボタンが押されたらメニューフラグはfalse
}
}
少しわかりにくいですが上のような略で説明しますと
・投稿画面ではソフトキー1でメニューに戻る
・その他のメニューではソフトキー1でメニューに戻る
これが問題なのですが
・メニューではソフトキー1で投稿画面にいく。
このようにプログラムをすると
各種メニュー、または投稿画面を表示しているときに
ソフトキー1でメニューに戻ろうとすると
その結果、メニューでソフトキー1が押されたように判定され
その結果再び投稿画面にいく。
以下ずっと続く。
という風になってしまい、投稿画面から出れなくなってしまいます。
このような状況を解決する方法はありますか?
わかりにくいところがあればお答えしますので
よろしくお願いします。
お礼
ご解答ありがとうございます。 機種によって表示できたり出来なかったりするようですね。 Displayableを継承したクラスにはsetCommandListenerがあり、CommandListenerを登録することによって、真中のボタン(?)のイベントが取れるのですが・・・。 http://godwood.allnet.ne.jp/vioret/midpapi/javax/microedition/lcdui/Displayable.html