Android 在设置onClickListener之前检查视图是否==null
我通常创建Android 在设置onClickListener之前检查视图是否==null,android,Android,我通常创建initialize()函数和用于设置单击侦听器的函数,然后从活动的onCreate()调用这些函数。在函数中调用someView.setOnClickListener(…)时,是否应检查someView==null值?我知道,它!=空,但我需要关于编码风格的建议。最佳做法是什么? 以下是一个例子: ... public class SomeActivity extends Activity { private ImageButton someButton; priva
initialize()
函数和用于设置单击侦听器的函数,然后从活动的onCreate()
调用这些函数。在函数中调用someView.setOnClickListener(…)
时,是否应检查someView==null
值?我知道,它!=空
,但我需要关于编码风格的建议。最佳做法是什么?以下是一个例子:
...
public class SomeActivity extends Activity
{
private ImageButton someButton;
private Intent someIntent;
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.add_alarm);
initialize();
setSomeButtonHandler();
}
public void initialize()
{
someButton = (ImageButton) findViewById(R.id.someButton);
}
public void setSomeButtonHandler()
{
if(someButton != null) //Should I check this?
{
someIntent = new Intent(SomeActivity.this, SomeButtonActivity.class);
someButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
startActivity(someIntent);
}
});
}
}
}
调用setContentView()
后,如果在正确的布局中查找并且该布局中存在该视图,则永远不会得到空视图
如果您通过传递错误的ID来查找视图,或者在不同的布局(如对话框或其他)中查找视图,则只会得到null
因此,如果您设计好应用程序,并在编码时牢记所有这些,那么您就不需要这些空检查。我个人在Android上工作了两年多,从未使用过它们,也没有因此而出现任何问题。一旦调用了setContentView()
,如果您在正确的布局中查看并且视图存在于该布局中,您将永远不会得到空视图
如果您通过传递错误的ID来查找视图,或者在不同的布局(如对话框或其他)中查找视图,则只会得到null
因此,如果您设计好应用程序,并在编码时牢记所有这些,那么您就不需要这些空检查。我个人在安卓上工作了两年多,从未使用过它们,也没有因此而出现任何问题。您可以使用空值检查进行测试。
findViewByID
方法在找不到任何视图时返回null。例如,如果您使用了错误的id,或者在setContentView
之前尝试访问该子级
所以,如果你确信你做的每件事都是对的,那么就不需要检查了。但如果有任何错误的机会,你可以用它来测试
像
您可以使用空检查进行测试。
findViewByID
方法在找不到任何视图时返回null。例如,如果您使用了错误的id,或者在setContentView
之前尝试访问该子级
所以,如果你确信你做的每件事都是对的,那么就不需要检查了。但如果有任何错误的机会,你可以用它来测试
像
不,你不需要这个精神检查
如果findViewById返回null,则最好使应用程序崩溃,因为这意味着您没有使用正确的XML或ID。在调试中崩溃时解决它,并且不会再次为null。不,您不需要此健全性检查
如果findViewById返回null,则最好使应用程序崩溃,因为这意味着您没有使用正确的XML或ID。在调试中崩溃时解决它,并且不会再次为null。不,不,为可读性删除它们。不,不,为可读性删除它们。
if(buttton == null)
show a warning
else
do work