Yikes。 XMLは、ベストプラクティスの答えですが、のうちの何かは、いくつかの動的な実行時作成、または少なくとも2つの組み合わせのために悲鳴を上げる。あなたはどちらの方法でも処理時間やapkのサイズに大きな違いは見られないでしょう。
たとえば、文字ボタンごとに新しい属性(パディングなど)を変更または追加する場合にはどうなるかを検討します。これらのXML要素を手動で変更する必要がありますか、適切に検索/置換する巧妙な正規表現について考える必要がありますか?
私は、スタイルの組み合わせ、<include>
ステートメント、および実行時の変更を包括的で保守可能な解決策にしたいと思います。最初にボタンを1つ作成して、すべてのボタンを見たいと思う方法を設定します。 "LetterButton"スタイルをstyle.xmlに抽出し、代わりにボタンのandroid:style="@style/LetterButton"
属性を使用してください。これにより、1つのファイルでスタイルを変更し、すべての文字ボタンに影響を与えることができます。
次に、ボタン自体を<include>
ファイルに抽出します。これを行うには、GUIバージョンのボタンを右クリックし、 "Include ... Extract"を選択します。次に<include>
ボタンを手配してください。おそらく、<TableLayout>
にする必要があります。それぞれ@+id/letter_button_0
〜_25
までの一意のIDを指定してください。これらすべてのボタンのtext
属性は何でもかまいません。後でこれらのボタンを動的に設定します。
最後に、onCreateで{R.id.letter_button_0、...}の形式のint配列と{"A"、...}形式の文字列の配列を定義し、それらの上で、各ボタンに文字を入れるためにbutton = findbyId(int)、button.setText(String)を実行します。
これはもっとうまくいくかもしれませんが、スマートなUIを作成するのは面倒な作業なので、1つの場所(スタイルまたはインクルード)でコードを変更でき、すべてのボタンが更新します。