问题描述
我目前正在学习Android开发人员课程,并正在开发一个小型应用程序。我已经使用onCreate
方法之外的clickListener的单独方法编写了代码,如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void numberActivity(View view) {
TextView textView = (TextView)findViewById(R.id.numbers);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(),"Numbers",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(view.getContext(),NumbersActivity.class);
startActivity(intent);
}
});
}
但是,我在课程示例代码中看到该代码是在onCreate()
方法内编写的,如下所示:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView numbers = (TextView) findViewById(R.id.numbers);
numbers.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent numbersIntent = new Intent(MainActivity.this,NumbersActivity.class);
startActivity(numbersIntent);
}
});
所以,我的问题是哪种方法更正确?在这两种情况下,应用程序都将启动并且侦听器正在运行。我想知道哪种方法更适合应用程序的性能和速度。
解决方法
我认为您应该在Java代码中而不是xml中添加所有onClickListeners。 但是我认为,如果将它们添加到onCreate或在onCreate中调用的方法,则与性能完全无关。这只是什么问题对您来说更方便和/或更好地阅读和理解。