2011-12-29 14 views
0

私はアクティビティクラスを拡張する2つのクラスを持っています。各クラスには独自のレイアウトクラス、main.xmlcompose.xmlがあります。私の主な活動でレイアウトXMLファイルから作成されたオブジェクトはnullです

私はcompose.xmlにあるレイアウト要素にアクセスしよう。したがって:

EditText smsBody = (EditText)findViewById(R.id.smsBody); 

しかし、smsBodyはnullです。どうして?どうすればそれにアクセスできますか?

+0

プロジェクトをクリーンアップしてみましたか? –

+0

は、はい、私は率直に言って、あまりにも –

+0

をこれをしなかった、また、私にはあなたがfindViewByIdはnullを返すグーグル数times.Ifが起こっているこれは、あなたが時間のほとんどは、それはあなたがXMLをpostthe too.Canクリーンアップを使用して働いていたし、私のために、多くの記事を取得しますここでコードを編集してください。EditTextのfindViewByIdを実行する前にsetContentView()を済ませたいと思います。 –

答えて

1

ためLayoutInflaterを使用することができますので、同様に他のレイアウトを使用する必要がある例外的な場合にあなたはonCreate()方法でコンテンツビューを設定しましたか?この例では

同様:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 
+0

はいコンテンツビューを設定しました –

+0

'compose.xml'の子にアクセスしようとすると、この行を調整する必要があります:' setContentView(R.layout.compose); '。 – Stephan

1

さて、あなたの主な活動はmain.xmlレイアウトになっています。あなたの作成アクティビティのレイアウトはcompose.xmlです。あなたの "smsBody" EditTextcompose.xmlレイアウトにあると仮定すると、そのウィジェットはあなたのmain.xmlレイアウトには存在しないので、あなたの作成アクティビティでのみアクセス可能です。主な活動は、あなたがcompose.xmlのコンポーネントにアクセスできることを期待することができますどのように、レイアウトmain.xmlを持って

1

? setContentView()を使用して設定したレイアウト内でビューを再生すると仮定します。

は、我々はあなたがこの

関連する問題