2011-12-22 10 views
0

これは愚かな質問の場合は、事前に申し訳ありません!setContentViewが呼び出される前にボタンのプロパティを変更できないのはなぜですか?

私はAndroidでいくつかのことを試していましたが、xmlファイルで指定された実行時に要素を変更することを試していました。

Button buttonSetup = (Button) findViewById(R.id.buttonSetup); 
buttonSetup.setTextSize(40); 

はしかし、私はあなたが前に変更を加える場合は、このアプリケーションをクラッシュしたことに気づいた -

setContentView(R.layout.main); 

その理由は何ですか? (私は何かが明らかに欠けている場合は申し訳ありません!私は私の脳は、冬のために休止状態に入ったと思います!)

私はあなたがの多くを変更した場合ように、 setContentView前 要素を変更することをお勧めだろうと思っていた

要素(半ダースかそれ以上の要素が半ダース以上の要素を占めている)では、画面上で変化するものはユーザーには明らかではありません。

ありがとうございます!

答えて

3

簡単な答え:あなたのxml-レイアウトがsetContentViewを呼び出すことによって膨張さ

。 これを膨らませない前に、アクティビティはXMLについて認識しません。

手動でこのコードの表示を膨らませることができます。

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
LinearLayout myLayout = (LinearLayout) inflater.inflate(R.layout.nameOfXML, null); 

以降はオーケー

setContentView(myLayout); 
+0

と、この膨張したレイアウトにビューを設定し...私はボタンがそのようにアクセスされたことから考えてレイアウト(R.layout.main)とは無関係に思えるような方法で、独自のもの(R.layout.buttonSetup)を作成しました。 – Eilidh

+0

私は少し混乱しています。申し訳ありません:) – Eilidh

+0

問題はありません私にとっても理解するのは容易ではありませんでした。あなたがビューを膨張させる場合、上記のようにsetContentViewを呼び出すよりも、あなたが望むようにあなたのものをすべて変更することができます。 – Thommy

関連する問題