2017-10-18 46 views
-1
public class fingerp extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_fingerp, container, false); 
     return rootView; 
    } 
} 

這個ID與按鈕錯誤findViewById想盡一切

String root = Environment.getExternalStorageDirectory().toString(); 
File myDir = new File(root + "/documents"); 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    myDir.mkdirs(); 
    EditText edit = (EditText)findViewById(R.id.editText); 
    String edt = edit.getText().toString(); 
    File file = new File (myDir,edt); 
} 

這是在Android的外部存儲保存的文件夾,我來自用戶採取的文件夾名稱輸入,並使用我的標籤查看現在用這個說法↓

EditText edit = (EditText)findViewById(R.id.editText); 
String edt = edit.getText().toString(); 

但findViewById是給了一個錯誤

+0

請發佈錯誤stacktrace – Lino

+0

請發佈您的錯誤日誌。 –

回答

2

方法findViewById()未在類Fragment中實施。這種方法被實現爲ActivityView

所以,請嘗試以下變化:

public void onCreate(Bundle savedInstanceState) { 
    .... 
    EditText edit = (EditText) getActivity().findViewById(R.id.editText); 
    .... 
} 

UPDATE

由於遠低於註釋,你不能在onCreate方法依靠findViewById()找到意見從父活動。這也標誌着在DOCS

注意的是,雖然片段的活動仍然在創建的過程中這可以被調用。因此,您不能依賴於此時正在初始化活動的內容視圖層次結構。如果您想在創建活動本身後進行工作,請參閱onActivityCreated(Bundle)。

這樣,如果你EditText是的R.layout.fragment_fingerp

部分你可以這樣做:

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_fingerp, container, false); 

    EditText edit = (EditText) rootView.findViewById(R.id.editText); 
    String edt = edit.getText().toString(); 
    File file = new File (myDir,edt); 

    return rootView; 
} 

或者剛剛從onCreate()onActivityCreated移動代碼:

public void onActivityCreated (Bundle savedInstanceState) { 
    ...    
    EditText edit = (EditText) getActivity().findViewById(R.id.editText); 
    ... 
} 
+0

不工作兄弟 –

+0

請注意,在onCreateView我正在保存mRootView ...不rootView ...無論如何,我添加了第二個選項。再次檢查答案 – W0rmH0le

+0

在選項2中得到它 –

0

移動您的代碼從onCreateonViewCreated這是一個特別的片段生命週期回調。