2016-04-13 13 views
-2

私が理解するところでは、LayoutInflaterはXMLをビューに変換します。しかし、ボタン、テキストビュー、または他のウィジェットをコードで使用すると、これらのビューを最初に膨張させなくても、単にfindViewById()を使用する必要があります。これらのビューは自動的に膨らんでいますか?もしそうなら、いつビューが自動的に膨らんで、いつ手動で膨らませる必要がありますか?ビューは自動的に膨らんでいますか?

+0

あなたの基本的な質問は、「ビューを手動で膨張させる必要があるのはいつですか?いつ自動的に行われますか? Ankesh kumar Jaisansariaは良い返答をしました。また、ここで見て:[setcontentviewとインフレータの違い](http://stackoverflow.com/questions/17808177/difference-between-setcontentview-and-inflater)。最後に、このスレッドを読む:[フラグメントvsアクティビティとビュー](http://stackoverflow.com/questions/10478233/android-i-need-some-clarifications-of-fragments-vs-activities-and-views) – paulsm4

+0

インフレータ単にXMLから実際のViewオブジェクトに変換することを意味します。 findViewByIdは、実際のビューオブジェクトを探して操作することができます。 –

答えて

2

は、あなただけのxmlレイアウトを膨らませる必要があり、その後、すべてのviewgroupsとビュー(ボタン、TextViewの、のEditText、など。)を自動的に表示されます。

したがって、アクティビティクラスでは、oncreateメソッドにSetContentview()という行があり、これはxmlレイアウトを膨張させます。

1

アクティビティとxmlを手動で作成した場合は、ビューを手動で展開します。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_activity); 
} 
1

Activityは、onCreateメソッドにsetContentView(R.layout.<your_layout_here>)を呼び出す必要があります。これにより、指定されたレイアウトのXMLがActivityのビュー階層に展開されます。あなたは、ビュー階層にレイアウト(およびその子View秒のすべてを)膨らませたら、あなたはへの参照を取得するためにfindViewById(R.id.<your_view_id>)を使用することができます

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.<your_layout_here>, container, false); 
} 

Fragmentについては、以下のようなonCreateViewメソッドをオーバーライド実際のViewオブジェクトを階層に展開して再生します。

1

いくつかの事はここにある:あなたの活動のための

1.ビュー(UI画面)、それは、setContentView()方法で設定されています。例えば、特定のUIコンポーネントの

ビューボタンは、xmlのactivity_layoutで作成するか、または特定のUIコンポーネントの別のxmlレイアウトファイルを展開することができます。最高のとあなたのカスタマイズしたトースト用のxmlレイアウトファイルを膨らませるのが好きです。

そこで、ここでsetContentView()と別のビューのXMLレイアウトファイルを膨張に関するものである:これら両方は、ビューおよびビューコンポーネントのレイアウトを提供 それらの両方がバイナリを作成しますレイアウト用に出力し、上記のように使用してください。

関連する問題