我创建了一个小程序来设置onResume()方法而不是onCreate()的内容视图,并且它工作正常.
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();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
Jai*_*dra 10
从onCreate()Activity调用一次,这是大多数初始化应该发生的地方:调用setContentView(int)膨胀活动的UI,使用findViewById以编程方式与UI中的小部件交互,调用managedQuery(android.net.Uri , String[], String, String[], String)以检索正在显示的数据的游标等.
将内容设置为onResume()或onStart()(被称为多次)是低效的,因为这setContentView()是一个繁重的操作.
小智 5
您不要在 onStart 或 onResume 中设置ContentView,因为它效率低下。设置布局是一项相当繁重的任务。您必须解析 XML、创建视图、测量、绘图等。这是您最多希望运行一次的任务。
在 Activity 类的生命周期中, onCreate 只会被调用一次。onResume 和 onStart 将被多次调用,而不会破坏您的 Activity。
| 归档时间: |
|
| 查看次数: |
4077 次 |
| 最近记录: |