I have a problem with show AlertDialog when the keyboard in the inputmethod is pressed. I have try a lot way to do that like KeyBoard.java here
case Keyboard.KEYCODE_SHIFT:
imeService.showDialog();
and ImeService who extends InputMethodService here
AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("123");
dialog.setMessage("123");
dialog.setPositiveButton("123", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "123", Toast.LENGTH_SHORT).show();
}
});
dialog.setNegativeButton("123", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "123", Toast.LENGTH_SHORT).show();
}
});
dialog.setNeutralButton("123", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "123", Toast.LENGTH_SHORT).show();
}
});
AlertDialog a=dialog.create();
a.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
a.show();
and I also have permission in manifest
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
why still wrong? always shutdown the app
the error log
05-02 00:03:40.911 23064-23064/io.github.timeime.time E/InputEventReceiver: Exception dispatching input event. 05-02 00:03:40.911 23064-23064/io.github.timeime.time E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback 05-02 00:03:40.911 23064-23064/io.github.timeime.time E/MessageQueue-JNI: 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:355) at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:324) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:285) at android.support.v7.app.AppCompatDialog.setContentView(AppCompatDialog.java:83) at android.support.v7.app.AlertController.installContent(AlertController.java:225) at android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:257) at android.app.Dialog.dispatchOnCreate(Dialog.java:578) at android.app.Dialog.show(Dialog.java:314) at io.github.timeime.time.ImeService.showDialog(ImeService.java:60) at io.github.timeime.time.KeyboardUtil$1.onKey(KeyboardUtil.java:59) at android.inputmethodservice.KeyboardView.detectAndSendKey(KeyboardView.java:831) at android.inputmethodservice.KeyboardView.onModifiedTouchEvent(KeyboardView.java:1361) at android.inputmethodservice.KeyboardView.onTouchEvent(KeyboardView.java:1224) at android.view.View.dispatchTouchEvent(View.java:9993) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2831) at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1863) at android.app.Dialog.dispatchTouchEvent(Dialog.java:982) at android.inputmethodservice.SoftInputWindow.dispatchTouchEvent(SoftInputWindow.java:153) at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2792) at android.view.View.dispatchPointerEvent(View.java:10228) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5350) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5186) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4626) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4679) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4645) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4787) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4653) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4844) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4626) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4679) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4645) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4653) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4626) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7312) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7190) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7151) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7422) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:323) at android.os.Looper.loop(Looper.java:143) at android.app.ActivityThread.main(ActivityThread.java:7229) at java.lang.r 05-02 00:03:40.911 23064-23064/io.github.timeime.time D/AndroidRuntime: Shutting down VM 05-02 00:03:40.911 23064-23064/io.github.timeime.time E/AndroidRuntime: FATAL EXCEPTION: main Process: io.github.timeime.time, PID: 23064 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:355) at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:324) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:285) at android.support.v7.app.AppCompatDialog.setContentView(AppCompatDialog.java:83) at android.support.v7.app.AlertController.installContent(AlertController.java:225) at android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:257) at android.app.Dialog.dispatchOnCreate(Dialog.java:578) at android.app.Dialog.show(Dialog.java:314) at io.github.timeime.time.ImeService.showDialog(ImeService.java:60) at io.github.timeime.time.KeyboardUtil$1.onKey(KeyboardUtil.java:59) at android.inputmethodservice.KeyboardView.detectAndSendKey(KeyboardView.java:831) at android.inputmethodservice.KeyboardView.onModifiedTouchEvent(KeyboardView.java:1361) at android.inputmethodservice.KeyboardView.onTouchEvent(KeyboardView.java:1224) at android.view.View.dispatchTouchEvent(View.java:9993) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2831) at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1863) at android.app.Dialog.dispatchTouchEvent(Dialog.java:982) at android.inputmethodservice.SoftInputWindow.dispatchTouchEvent(SoftInputWindow.java:153) at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2792) at android.view.View.dispatchPointerEvent(View.java:10228) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5350) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5186) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4626) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4679) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4645) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4787) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4653) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4844) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4626) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4679) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4645) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4653) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4626) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7312) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7190) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7151) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7422) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:323) at android.os.Looper.loop(Looper.java:143) at android.a