LayoutInflater
動的にLayout.xmlファイルをセットすることができる。
セットしてないlayout.xmlの中の要素(TextViewやButton)を書き換えたりもできる。
以下ソースでは、初期画面にactivity_main.xmlをセット。
ボタンを押すとactivity_sub.xmlが追加されます。
ボタンを押すとactivity_sub.xmlが追加されます。
![]() |
| activity_mainのみ |
![]() |
| activity_subを追加 |
MainActivity.java
public class MainActivity extends Activity implements OnClickListener{
private LinearLayout _layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button _button1 = (Button)findViewById(R.id.button1);
_button1.setOnClickListener(this);
_layout = (LinearLayout)findViewById(R.id.layout01);
}
@Override
public void onClick(View arg0) {
// TODO 自動生成されたメソッド・スタブ
switch(arg0.getId()){
case R.id.button1:
//activity_sub.xmlを追加
_layout.removeAllViews();//layoutを削除
getLayoutInflater().inflate(R.layout.activity_sub, _layout);
break;
}
}
}
res/layout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ボタンを押すと下LinerLayoutに追加されます"/> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="XML追加" /> <!-- ↓ここに追加されます --> <LinearLayout android:id="@+id/layout01" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > </LinearLayout> </LinearLayout>
res/layout/activity_sub.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="テキスト1" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ボタン1" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="テキスト2" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ボタン2" /> </LinearLayout>


0 件のコメント:
コメントを投稿