2017-11-16 1 views
-1

내 응용 프로그램에 로그인 프로세스의 진행률 대화 상자가 있고 대화 상자가 열려있는 동안 방향이 변경되면 응용 프로그램이 충돌합니다. 대화 상자가 나타납니다. 이 시점에서 응용 프로그램이 충돌합니다. 나는 지난 3 박에서이 문제를 알아 내고 있지만 그것을 얻을 수 없다. 제발 도와 줘. 내 조각 :진행률 대화 상자가 열리고 사용자가 방향을 바꿀 때 응용 프로그램이 충돌 함

public class Example extends Fragment { 

private static final String TAG = "LoginActivity"; 
private static final int REQUEST_SIGNUP = 0; 


Unbinder unbinder; 

@BindView(R.id.input_email) EditText _emailText; 
@BindView(R.id.input_password) EditText _passwordText; 
@BindView(R.id.btn_login) Button _loginButton; 
@BindView(R.id.link_signup) TextView _signupLink; 

@Override 
public void onDestroyView() { 
    super.onDestroyView(); 

    // unbind the view to free some memory 
    unbinder.unbind(); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.Example, container, false); 

    unbinder=ButterKnife.bind(this,rootView); 



    _loginButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      login(); 
     } 
    }); 


    _signupLink.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) 
     { 
      Intent create= new Intent(getActivity(),NewAccount.class); 
      startActivity(create); 
     } 

    }); 
    return rootView; 
} 

public void login() { 
    Log.d(TAG, "Login"); 

    if (!validate()) { 
     onLoginFailed(); 
     return; 
    } 

    _loginButton.setEnabled(false); 

    final ProgressDialog progressDialog = new ProgressDialog(getActivity(), 
      R.style.AppTheme_Dark_Dialog); 
    progressDialog.setIndeterminate(true); 
    progressDialog.setMessage("Authenticating..."); 
    progressDialog.show(); 
    //new YourAsynTask(getActivity()).execute(); 

    String email = _emailText.getText().toString(); 
    String password = _passwordText.getText().toString(); 

    // TODO: Implement your own authentication logic here. 

    new android.os.Handler().postDelayed(
      new Runnable() { 
       public void run() { 
        // On complete call either onLoginSuccess or onLoginFailed 
        onLoginSuccess(); 

        // onLoginFailed(); 
        progressDialog.dismiss(); 

       } 
      }, 3000); 
} 

@Override 
public void onPause() { 
    Log.e("DEBUG", "OnPause of loginFragment1"); 
    super.onPause(); 
} 

public void onLoginSuccess() { 
    _loginButton.setEnabled(true); 
    Intent i=new Intent(getActivity(),SuccessLogin.class); 
    startActivity(i); 
} 

public void onLoginFailed() { 
    Toast.makeText(getActivity(), "Login failed", Toast.LENGTH_LONG).show(); 

    _loginButton.setEnabled(true); 
} 

public boolean validate() { 
    boolean valid = true; 

    String email = _emailText.getText().toString(); 
    String password = _passwordText.getText().toString(); 

    if (email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) { 
     _emailText.setError("enter a valid email address"); 
     valid = false; 
    } else { 
     _emailText.setError(null); 
    } 

    if (password.isEmpty() || password.length() < 4 || password.length() > 10) { 
     _passwordText.setError("between 4 and 10 alphanumeric characters"); 
     valid = false; 
    } else { 
     _passwordText.setError(null); 
    } 

    return valid; 
} 

로그 캣 출력 :

11-16 19:20:10.955 4022-4022/com.example.a1332931.login_application E/WindowManager: android.view.WindowLeaked: Activity com.example.a1332931.login_application.TabActivity has leaked window com.android.internal.policy.PhoneWindow$DecorView{42b6135 V.E...... R......D 0,0-683,232} that was originally added here 
                        at android.view.ViewRootImpl.<init>(ViewRootImpl.java:375) 
                        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:299) 
                        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85) 
                        at android.app.Dialog.show(Dialog.java:319) 
                        at com.example.a1332931.login_application.Example.login(Example.java:156) 
                        at com.example.a1332931.login_application.Example$1.onClick(Example.java:67) 
                        at android.view.View.performClick(View.java:5201) 
                        at android.view.View$PerformClick.run(View.java:21163) 
                        at android.os.Handler.handleCallback(Handler.java:746) 
                        at android.os.Handler.dispatchMessage(Handler.java:95) 
                        at android.os.Looper.loop(Looper.java:148) 
                        at android.app.ActivityThread.main(ActivityThread.java:5443) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
11-16 19:20:10.957 4022-4095/com.example.a1332931.login_application E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb8aa6c60 

11-16 19:20:12.512 4022-4022/com.example.a1332931.login_application E/AndroidRuntime: FATAL EXCEPTION: main 
                        Process: com.example.a1332931.login_application, PID: 4022 
                        java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setEnabled(boolean)' on a null object reference 
                         at com.example.a1332931.login_application.Example.onLoginSuccess(Example.java:200) 
                         at com.example.a1332931.login_application.Example$3.run(Example.java:168) 
                         at android.os.Handler.handleCallback(Handler.java:746) 
                         at android.os.Handler.dispatchMessage(Handler.java:95) 
                         at android.os.Looper.loop(Looper.java:148) 
                         at android.app.ActivityThread.main(ActivityThread.java:5443) 
                         at java.lang.reflect.Method.invoke(Native Method) 
                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
+0

'_loginButton.setEnabled (거짓)'과'자바. lang.NullPointerException : 'null 객체 참조에서 가상 메소드'void android.widget.Button.setEnabled (boolean) '을 호출하려고 시도했습니다. – greenapps

답변

0

는 안드로이드 매니페스트 활동이 구성 변경을 추가

<activity 
      android:name="YourActivity" 
      android:configChanges="orientation|keyboardHidden|screenSize"/> 
+0

이미 내 조각이 들어있는 활동에 추가했습니다. –

+0

매니페스트를 넣으십시오. – diegoveloper

+0

android : configChanges = "screenSize"작업을 수행했습니다. 많이 감사합니다. –

관련 문제