0

私はAndroidを初めて使用し、次の問題に取り組んでいます。同様の機能の別の2つのボタンをグループ化するボタンを作成する必要があります(一種のサブメニュー)。たとえば、「検索」というボタンがあるとします。このボタンをクリックすると、検索ボタンが消え、2つのボタン(「google」と「bing」など)が画面に表示されます。

したがって、私のアイデアは、2つのボタンを表示して処理するためだけに新しい(一時)レイアウトを作成するのではなく、同じレイアウトで3つのボタンすべてをプログラムで管理することでした。ステートマシンのように。より正確には、次のようになります。

「検索」ボタンを押します。onClick(View)は、メイン画面(mode = mainmenu)にいるかどうかを判断し、検索ボタンの名前を「google」に変更して「bing」という名前の2番目のボタンを作成するか、(mode = submenu)ボタンの関数を呼び出します。検索ボタンへの名前はすでに「google」に変更されています...

戻るボタンを押すと、onBackPressed()はサブメニュー(mode = submenu)にいるかどうかを確認し、「bing」ボタンを非表示にして「google」の名前を「search」に変更します。そうでない場合は、メインメニュー(mode = mainmenu)になります。アクティビティを終了します。

これはまったく意味がありますか?これに加えて、ボタンと(サブ)メニューの数が増え、さらに変更するための保守性が低下する多くのコードが生成されます。

ありがとう!

PS私の英語が(私の母国語ではなく)ひどい場合は申し訳ありません;-)

4

3 に答える 3

0

これはコードが多すぎてデバッグが多すぎるので、新しいレイアウトを作成するのがより良い方法だと思います。

于 2011-05-16T10:16:51.500 に答える
0

パフォーマンスの問題がある場合、またはパフォーマンスの問題が発生する可能性があると予想される場合 (GUI の複雑さが原因で)、これは理にかなっている可能性があります。しかし、そうでない場合は、パフォーマンスのわずかな向上よりも、コードの単純化の方が重要です。

于 2011-05-16T10:20:37.483 に答える
0

「検索」ボタンが押されるまで見えない(正確にはなくなった)ボタンを作成し、元の検索ボタンの名前を変更できます。それは機能し、xml でレイアウトを設定すると実装が容易になります。また、それがどのように見えるかを示すプレビューも提供します。プログラムでウィジェットを表示するには、保守が難しいコードが必要になります。

ただし、ボタンのテキストを変更するデザインは良いデザインではありません。まず、「検索」を押したときに、そのテキストを変更すると非常に混乱します。個人的には、選択ダイアログをポップアウトすることをお勧めします。または、2 つのボタンを配置する場所が本当にない場合を除き、最初に両方の検索ボタンを表示します。

于 2014-01-06T07:58:09.570 に答える