對於Android,我有一個名爲AFrag的類,我想知道是否可以創建子類可訪問的受保護字段(ex.BFrag),然後超類可以訪問分配給受保護字段的子類的引用。Java受保護的變量訪問和修改規則
public class AFrag extends Fragment
{
protected EditText someEt;...
}
public class BFrag extends AFrag
{
@Override
onCreateView()
{
someEt = (EditText) rootView.findViewById(R.id.EditTextinBFragXml);...
}
}
BFrag作爲childFragment在AFrag中加載。當我訪問AFrag中的變量時,像someEt.getText()會拋出NullPointerException。我的問題是否引用了BFrag的xml存在於AFrag中?
我的用例是我有自己獨特的UI EditText視圖的多個動態加載片段,我想有一個單獨的父片段,承載「保存」按鈕,將調用所有的getText()在每個孩子片段中查看。
這些片段位於同一個包中,我的問題是超類是否能夠訪問子類設置爲受保護變量的引用。在我的用例中,超類的變量在子類初始化之後仍然爲空。 –
「我的問題是超類是否能夠訪問子類設置爲受保護的引用」 - >否超類無法訪問子類中的變量,即使它是公共變量。 「在我的使用情況下,超類的變量仍然是零,後子類初始化它」 - > –
「在我的使用情況下,超類的變量仍然是空,子類初始化後,它」 - >'公共類BFrag擴展AFrag { @override onCreateView(){ someEt =(EditText上)rootView.findViewById(R.id.EditTextinBFragXml); ... } }'你想初始化超類變量subclass.Please檢查什麼價值來了在代碼中(EditText)rootView.findViewById(R.id.EditTextinBFragXml) –