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 件のコメント:
コメントを投稿