在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,除非您将其初始化为