我创建了一个小程序来在 onResume() 方法而不是 onCreate() 上设置内容 View ,它工作正常。
onResume()
{
setContentView(R.layout.activity_main);
editText1 = (EditText) findViewById(R.id.ed1);
editText2 = (EditText) findViewById(R.id.ed2);
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show();
}
});
}
}
最佳答案
由于 Activity 的 onCreate()
只被调用一次,因此这是大多数初始化应该进行的地方:调用 setContentView(int)
来填充 Activity 的 UI,使用 findViewById 以编程方式与 UI 中的小部件交互,调用 managedQuery(android.net.Uri, String[], String, String[], String)
检索正在显示的数据的游标等。
将onResume()
或onStart()
中的内容设置为setContentView()
(多次调用)效率低下> 是一项繁重的操作。
关于android - 为什么我们在 onCreate() 中设置内容 View 而不是在 onStart() 或 onResume() 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33973399/