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