用戶發生崩潰。我知道爲什麼,但我不知道如何解決它。我是android dev中的新手。Android:活動中的片段。從片段獲取視圖時發生NullPointerException
情況: 安卓:內部活動片段。片段有一個EditText。活動有一個按鈕。用戶點擊按鈕。 Inside Button.OnClick()我想獲得文本Fragment.EditText.getText(); 有些用戶在這裏崩潰EditText.getText()。即EditText爲空。
我怎麼辦:
In Activity:
public class MyAcrivity extends AppCompatActivity implements OnFragmentInteractionListener {
final MyFrag myFrag= MyFrag.newInstance();
public void run(final View view) {
//some users have crash here because getEt() return null
final String str = myFrag.getEt().getText().toString();
}
}
在片段:
public class MyFrag extends Fragment {
private EditText et;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_myfrag, container, false);
et = (EditText) view.findViewById(R.id.et);
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
et = (EditText) view.findViewById(R.id.et);
}
public EditText getEt() {
// return (EditText) getView().findViewById(R.id.et); here getView() could be nul too
return et;
}
}
- 我知道getView()可以爲空(已經GOOGLE了它)。
- Init「查看」裏面的onCreateView沒用。崩潰仍然發生。
- Init「查看」裏面的onViewCreated無用。崩潰仍然發生。
在仿真器或智能手機,我不能重現此崩潰。我的應用程序有穩定的工作。但有些用戶有崩潰,Fabric(crashlytics)正在發送關於它的消息。
的人!幫幫我!如何正確地從片段獲取一些視圖?我無法從Fragment的生命週期中找到答案。請向我解釋什麼是錯的。
你有沒有考慮過的[片段,活動週期的關係(http://3.bp.blogspot.com/-YJSE-iQngrw/U3bLHPnB1YI/AAAAAAAABWs/CD03Kp6O-zM/s1600/fragmentlifecycle.png)?您將需要檢查你是不是嘗試之前'在onStart訪問'EditText'你'Fragment'內()'叫你'Activity',以確保它已被初始化。 – PPartisan
什麼時候你會調用run()方法。因爲如果您在activity的onCreate()中調用run(),那麼它將返回null,因爲片段不會被創建。 – Jois
請指定你從哪裏調用run()? –