edittext字段的默认值是什么



在android studio中,有人说私人字段本金和利息永远不会分配,有人知道默认值是什么吗,所以我可以分配它们吗?

private EditText principal;
private EditText interest;

除非设置了初始值,否则您创建的每个class属性都将初始化为null。这是一个Java功能,而不是Android。唯一的例外是原始类型(int, boolean, float...),它们将被初始化为它们的java初始值。这里有原始类型的初始值。

对象初始化为null

您所称的默认值将是EditText的一个空实例。

因此,在您的情况下,您可以(!但不可以!)将它们初始化为new EditText() :

private EditText principal = new EditText(getApplicationContext());
private EditText interest = new EditText(getApplicationContext());

认真地说,不要这样做^按照下面的描述启动它们:

但这可能不是你想要做的。你想做的是在onCreate()中膨胀它们(如果你正在使用活动):

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    principal = (EditText) findViewById(R.id.et_principal);
    interest = (EditText) findViewById(R.id.et_interest);
    ...
}

或者onCreateView()(如果你使用的是碎片):

@Override
public View onCreateView(
        LayoutInflater inflater,
        ViewGroup container,
        Bundle savedInstanceState
) {
    final View root = inflater.inflate(R.layout.el_fragment, container, false);
    setContentView(R.layout.activity_main);
    principal = (EditText) root.findViewById(R.id.et_principal);
    interest = (EditText) root.findViewById(R.id.et_interest);
    ...
    return root;
}

默认情况下,EditText的值将为null,除非您将其初始化为

最新更新