我有兩個frament分別是密碼登錄和驗證碼登錄,每個里面含有對應下面兩個控制元件
@Override
protected void onStart() {
super.onStart();
// 密碼登錄的手機號
phone_p = getFragmentManager().findFragmentById(R.id.fragment_content).getView().findViewById(R.id.input_phone_p);
// 密碼登錄的密碼
psw = getFragmentManager().findFragmentById(R.id.fragment_content).getView().findViewById(R.id.input_psw);
// 驗證碼登錄的手機號
phone_v = getFragmentManager().findFragmentById(R.id.fragment_content).getView().findViewById(R.id.input_phone_v);
// 驗證碼登錄的驗證碼
verification=getFragmentManager().findFragmentById(R.id.fragment_content).getView().findViewById(R.id.input_verification);
}
默認是密碼登錄
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 默認密碼登錄頁面(fragment:0)
selectFragment(0);
}
// 選擇顯示的Fragment
private void selectFragment(int fragmentId){
// 獲得Fragment的管理器
FragmentManager manager = getFragmentManager();
// 開啟一個事務
FragmentTransaction transaction = manager.beginTransaction();
// 先隱藏Fragment
hideFragment(transaction);
if (fragmentId == 0){ // 密碼登錄
fragmentNumber = fragmentId;
if (pwdFragment == null){
pwdFragment = new PwdActivity();
transaction.add(R.id.fragment_content,pwdFragment);
}else {
transaction.show(pwdFragment);
}
}else if (fragmentId == 1){ // 驗證碼登錄
fragmentNumber = fragmentId;
if (verificationFragment == null){
verificationFragment = new VerificationActivity();
transaction.add(R.id.fragment_content,verificationFragment);
}else {
transaction.show(verificationFragment);
}
}
// 提交事務
transaction.commit();
}
當我切換fragment后使用驗證碼登錄的fragment會導致app閃退,問題出在下面兩個控制元件為空,怎么解決?
// 驗證碼登錄的手機號
phone_v = getFragmentManager().findFragmentById(R.id.fragment_content).getView().findViewById(R.id.input_phone_v);
// 驗證碼登錄的驗證碼
verification=getFragmentManager().findFragmentById(R.id.fragment_content).getView().findViewById(R.id.input_verification);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/283912.html
標籤:Android
上一篇:QT呼叫動態庫崩潰
