在设置onClickListener之前检查View == null

smb*_*smb 1 android

我通常创建initialize()用于设置on-click侦听器的函数和函数,然后从Activity中调用这些函数onCreate().当我打电话给someView.setOnClickListener(...)某个功能时,我应该检查一下是否someView == null?我知道,它!= 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);
                }
           });
        }   
    }
}
Run Code Online (Sandbox Code Playgroud)

Rag*_*ood 5

一旦setContentView()被调用,只要您正在查看正确的布局并且该布局中存在视图,您将永远不会获得空视图.

如果您通过传递错误的ID来查找View,或者在不同的布局中查找它(如Dialog或其他内容),则只会获得null.

因此,如果您很好地设计应用程序并在编码时记住所有这些,则不应该需要这些空检查.我个人从未使用它们超过两年在Android上工作,因为它没有任何问题.