我Button
中的MainActivity
想要在按钮点击事件上添加另一个XML。
请帮帮我。你真是太好了。
答案 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)将无效,应用程序将在打开时立即崩溃。