я начал работать с Многопоточностью, как и я хотел пойти проверки пользовательского ввода, так что я посмотрел на вопросе hereAndroid MultiThreading с afterTextChanged
, но все еще с какой-то причины моих приложения разбились, и я не могу точно определить, к проблема
RegisterActivity.Java
@Override
public void afterTextChanged(final Editable editable) {
email = etEmail.getText().toString();
new AsyncTask<Void, Void, Void>() {
protected Void doInBackground(Void... params) {
if(!isValidEmail(email))
LoginActivity.alertDialog(getApplicationContext(),"test","test");
return null;
}
}.execute();
}
LoginActivity.java (и да я знаю, что эта функция не должна быть здесь)
public static void alertDialog(Context context, CharSequence message, CharSequence type){
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(message)
.setNegativeButton(type, null)
.create()
.show();
}
StackTrace
E/AndroidRuntime: FATAL EXCEPTION: main Process:com.example.ofir.bopofinal, PID: 3038
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:351)
at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:320)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:281)
at android.support.v7.app.AppCompatDialog.setContentView(AppCompatDialog.java:83)
at android.support.v7.app.AlertController.installContent(AlertController.java:214)
at android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:258)
at android.app.Dialog.dispatchOnCreate(Dialog.java:394)
at android.app.Dialog.show(Dialog.java:295)
at com.example.ofir.bopofinal.LoginRegister.LoginActivity.alertDialog(LoginActivity.java:53)
at com.example.ofir.bopofinal.LoginRegister.RegisterActivity$3.onPostExecute(RegisterActivity.java:162)
at com.example.ofir.bopofinal.LoginRegister.RegisterActivity$3.onPostExecute(RegisterActivity.java:153)
at android.os.AsyncTask.finish(AsyncTask.java:651)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
Я сделал 'android: theme =" @ style/Theme.AppCompat ">' в manifest.xml и im, получая тот же результат , ошибка указывает на '.show()' в функции 'alertDialog' – styx
Я думаю, что нашел проблему - см. мой отредактированный ответ. – Ridcully
спасибо, такая глупая ошибка – styx