如何在一个Activity中使用多个XML文件?

时间:2017-09-23 07:31:36

标签: android android-layout android-activity

Button中的MainActivity想要在按钮点击事件上添加另一个XML。

请帮帮我。你真是太好了。

2 个答案:

答案 0 :(得分:2)

只需在代码中执行一项操作,在Layout中为任何类型的XML定义一个View,并将其放入XML中运行时,然后创建该布局的对象在您的类中,并在此Layout对象中膨胀另一个XML。

尝试使用此代码在运行时充气另一个XML:

LayoutInflater inflater = LayoutInflater.from(getApplicationContext()); 

// Put another XML name here with R.layout
    View view = inflater.inflate(R.layout.**XML**, null);

// Your Layout object   
    **layoutObject**.addView(view);

答案 1 :(得分:1)

MainActivity.java

public class MainActivity extends AppCompatActivity {

Button button2;

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

    button2 = (Button)findViewById(R.id.button2);

    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            setContentView(R.layout.layout);
        }
    });
}

@Override
public void onBackPressed()
{
  // Instead of setcontentview() i am restarting the activity.
    Intent i = new Intent(getApplicationContext(),MainActivity.class);
    startActivity(i);
}
}

Layout.java

public class Layout extends Fragment{


public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View v = inflater.inflate(R.layout.layout, container, false);

    return v;
}
}

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
     android:id="@+id/RL">

    <Button
        android:text="Button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:id="@+id/button2" />


</RelativeLayout>

layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fbb">

<TextView
    android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textView"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    />
</RelativeLayout>

注意:为其他xml(在本例中为layout.xml)创建片段java类是必要的,否则setContentView(R.layout.YourLayout)将无效,应用程序将在打开时立即崩溃。