Java 如何从“活动”中的“布局2”按钮显示主布局?
我有一个活动有两个布局,一个是主布局,另一个布局名称是layout2。两个布局文件各包含一个按钮。如果我按下主布局上的按钮,它会将我带到布局2,但问题是当我单击布局2上的按钮将我带回到主布局时,我不工作 main活动Java 如何从“活动”中的“布局2”按钮显示主布局?,java,android,android-layout,layout,mobile-application,Java,Android,Android Layout,Layout,Mobile Application,我有一个活动有两个布局,一个是主布局,另一个布局名称是layout2。两个布局文件各包含一个按钮。如果我按下主布局上的按钮,它会将我带到布局2,但问题是当我单击布局2上的按钮将我带回到主布局时,我不工作 main活动 import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; impo
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button button1,button2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setContentView(R.layout.layout2);
}
});
LayoutInflater inflater=this.getLayoutInflater();
View view=inflater.inflate(R.layout.layout2,null);
button2=(Button) view.findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setContentView(R.layout.activity_main);
}
});
}
}
这些是要显示的布局文件
主布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.lidiawood.myapplication.MainActivity">
<Button
android:text="Go to layout 2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="52dp"
android:id="@+id/button1" />
</RelativeLayout>
布局2
<?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">
<Button
android:text="go to main layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="14dp"
android:layout_marginStart="14dp"
android:layout_marginTop="40dp"
android:id="@+id/button2" />
</RelativeLayout>
任何人都可以帮助我如何从布局2的组件中获得主要布局的显示吗?onClick事件侦听器连接到膨胀视图中的按钮,而不是活动视图中的按钮。使用相同的布局并不重要,它是一个不同的按钮 这种情况永远不会发生,因为一般来说,在更改布局时,您需要不同的片段或活动。以这种方式更改内容视图不是一个好主意。如果仍然需要使用代码,则需要以下内容:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
onContentViewOneInflated();
}
private void onContentViewOneInflated() {
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setContentView(R.layout.layout2);
onContentViewTwoInflated();
}
}
}
private void onContentViewTwoInflated() {
Button button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setContentView(R.layout.activity_main);
onContentViewOneInflated();
}
}
}
我还没有试过这个密码。如果您有任何问题,请发表评论。没有收到错误结果是什么?