所以我试图切换布局以获得一个非常简单的2页应用程序。但是,当我单击后退按钮时,setContentView不起作用。有人知道为什么以及如何解决这个问题吗?
这是我的代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button infoBtn = (Button) findViewById(R.id.infoBtn);
infoBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setContentView(R.layout.activity_info);
}
});
LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View rootView = vi.inflate(R.layout.activity_info, null, true);
Button backBtn = (Button)rootView.findViewById(R.id.backBtn);
backBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setContentView(R.layout.activity_main);
System.out.println("Fired!");
}
});
}
}
调用SetContentView()
不会创建您的应用程序,因此您放入onCreate()
的所有代码都不会被第二次调用。
这就是为什么人们使用Activity
或Fragment
的
您可以封装oncreate代码,并在调用setContentView()
时调用它们