問題タブ [android-optionsmenu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android オプション メニュー ボタンは、2 回目のクリック後にのみ機能します
アプリに次のコードがあります。私のビューでは正常に機能するログインボタンがあります。ビューの optionsmenu をオーバーライドし、optionsmenu に接続されたリスナー内にログイン コードを配置しました。オプションメニューのログインボタンを押すと、最初のクリックでは何も起こりませんが、その後のクリックではすべて正常に動作します。どうしてこれなの?
android - メニュー項目でアクションバーに検索を実装する方法
私はAndroidで作業しており、タブICS
で使用していますActionBar
に 4 個のアイテムがありますActionBar
。
- ホームのロゴ
- スピナーアイテム1
- スピナー アイテム 2
- 検索アイコン
コードは次のとおりです。
main_layout
に「常に」を付けないとspinner
、1つだけspinner
が表示されます。spinners
検索アイコンをクリックするよりも、常に両方にActionBar
入力すると、検索クエリの入力に完全には使用されません。はSpinners
そのままで、SearchView
非常に小さく、検索アイコンを置き換えるだけです。
完全な検索ビューを実装するにはどうすれActionBar
ばよいですか。閉じるをクリックすると、スピナーが表示される必要があります。?
android - オプション メニューを開く際の IllegalStateException
アクティビティの 1 つでオプション メニューを使用すると、奇妙な動作が発生しました。ユーザーがアクティビティから離れて (ただし、アクティビティを終了せずに) 戻ってからオプション メニューを呼び出すと、アプリがIllegalStateException
. 例外は、アクティビティを終了する前にメニューが表示された場合にのみスローされます。私のコードがこれを引き起こしているわけではないようです。アクティビティはListActivity
. そもそも自分Adpater
が原因かと思ったのですが、例外はオプションメニュー(パネル)を作成する内部構造にあります。
さらに奇妙なことに、これはすべてのデバイスで発生しているわけではありません。現在、Android 4.0.3 を搭載した HTC Sensation でのみ再現できます。
オプション メニューの作成は非常に基本的なものに見えます (私の他のすべてのアクティビティと同じで、問題はありません)。
対応する menu.xml は次のようになります。
私はすでに多くのことを試しました(特にメニューの作成と準備)。最大の問題は、例外が発生しているため、例外をどこにもキャッチできないことView
です。
ヒントと可能な回避策は非常に高く評価されています!!1!
私Adapter
は実際にいくつかのビューを行っていますが、ビューの追加には注意を払っていると思います。さらに、例外には私のクラスへのトレースが含まれていないため、これが本当にアダプターに起因するものであるかどうかは疑わしいです。
MyViewHolder
はAdapter
sで呼び出されますbindView()
:
android - インフレによるメニューの更新
私のアプリケーションでは、アプリケーションの状態を反映するようにオプション メニューを管理しています。3 つのメニューが可能です。
このonCreateOptionsMenu
関数では、XML ファイルから基本的なエントリを膨らませます。
このonPrepareOptionsMenu
関数では、メニューをクリアしてから、アプリケーションの現在の状態に対応する XML ファイルをインフレートします。
そして、これは予期しない結果につながります!!!
メニューを状態 1 から状態 2 に変更してから状態 1 に戻すと、「その他」エントリがメニューのエントリの 1 つに視覚的に置き換えられます。しかし、機能は正しいです。クリックすると、オーバーフロー メニューが表示されます。
そして、状態 3 に変更すると、開こうとしてもメニューが表示されません。コードをデバッグすると、メニューがインフレーションの結果で正しく埋められていることがわかります (それに応じてメニューのサイズが変わります)。
コードが Android 2.3.3 で完全に動作することを付け加えておきます。この問題は、Android 4 で実行した場合にのみ発生します (Android 3 ではテストされていません)。
何か案が?
ご要望に応じて、問題を確認できるようにコードを簡略化しました。アプリケーションのコードは次のとおりです。
}
アクティブなメニュー エントリは 4 つだけです。1.11 では menu_1 から menu_2 に変更され、2.1 では menu_1 に戻ります。1.2 は menu_1 から menu_3 に変更され、3.3 は menu_1 に戻ります。
これまでに発生した問題: 1) 1.11 をクリックして menu_2 に変更します。メニューを開く : 5 つのメニュー項目のみが表示されます。メニューを閉じて再度開くと、6 つのメニュー項目が正しく表示されるようになりました。2) 2.1 をクリックしてメニュー 1 に戻ります。6 番目の位置に、「詳細」ではなく「2.6」が表示されます。「2.6」をクリックすると、動作は「詳細」のクリックに対応します。
そして今、メニュー用の XML ファイル: menu_1 :
メニュー_2:
および menu_3 :
android - java.lang.illegalstateexception:ファクトリはこのlayoutinflaterにすでに設定されています
Androidアプリのオプションメニューの背景色を変更しようとしました。ActionBarSherlockライブラリを使用しています。オプションメニューの背景色を変更するためにこのコードを試しました
https://stackoverflow.com/a/8475357/584095
しかし、「java.lang.illegalstateexception:ファクトリはすでにこのlayoutinflaterに設定されています」という例外が発生しました。
LayoutInflater.setFactory();
このコードの何が問題なのかわかりません。誰かがこの問題を解決するのを手伝ってくれますか?
android - API レベル 15 でオプション メニューが表示されない
私のマニフェストの読み取り
次の方法を使用して、2 つの項目を持つオプション メニューを作成しました。
私のmenu1 xmlは次のとおりです
API レベル 9 (ジンジャーブレッド) でアプリを実行すると、メニューは完全に機能します。ただし、API レベル 15 で同じアプリを実行すると、メニューは表示されません。API を使用して携帯電話にアクション バーが表示されることを期待していました。レベル 15. コードが不足していますか?
android - Honeycomb以上でGingerBreadとActionBarまでのオプションメニューを使用するにはどうすればよいですか?
GingerBread以下のバージョンのOSを搭載したデバイスにインストールすると、オプションメニューが表示されるアプリケーションをいくつか見ました。同じアプリが、HoneyComb以降のバージョンのOSを搭載しているデバイスでアクションバーを表示します。今、私のアプリには同じ要件があります。どうすればこれを達成できますか?
これは一例です。
android - Why's optionsMenu show in two line
タイトルに銀行の行が表示される理由がわかりません。今、私はoptionMenuだけを表示したい. 私を助けてください。
これが私のコードマニフェストです
活動について
android - OptionMenuItemのインジケーターを実装する方法は?
右の画像のようにOptionMenuItemのインジケーターを設定したい。私を助けてください
android - 実行時の変更後にオプション メニューから項目が失われる
Android 4.0.4、HTC T-Mobile で次の不具合が見られます。
私のプログラムは、実行時にオプション メニューを変更します (つまり、「開始」ボタンを「停止」ボタンに置き換えるなど)。残念ながら、オーバーフロー メニューが表示されなくなり、少なくとも 1 つのメニュー項目が「失われました」。一見すると、私の場合、「その他」メニュー項目が別のメニュー項目「設定」に置き換えられているように見えます。
これは Android 2 では発生しません。
(回避策を見つけたので、他の誰かがこの問題に遭遇した場合に備えて投稿しています)