Android 如何显示AlertDialog表单inputMethod
按下inputmethod中的键盘时,显示AlertDialog有问题。 我已经尝试了很多方法来做到这一点 比如这里的KeyBoard.javaAndroid 如何显示AlertDialog表单inputMethod,android,service,android-alertdialog,Android,Service,Android Alertdialog,按下inputmethod中的键盘时,显示AlertDialog有问题。 我已经尝试了很多方法来做到这一点 比如这里的KeyBoard.java case Keyboard.KEYCODE\u SHIFT: imeService.showDialog() ImeService在这里扩展了InputMethodService AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this); dialog.setTi
case Keyboard.KEYCODE\u SHIFT:
imeService.showDialog()代码>
ImeService在这里扩展了InputMethodService
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();
我在舱单上也有许可
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
为什么还是错的?
始终关闭应用程序
错误日志
05-02 00:03:40.911 23064-23064/io.github.timeime.time E/InputEventReceiver:异常调度输入事件。
05-02 00:03:40.911 23064-23064/io.github.timeime.time E/MessageQueue JNI:MessageQueue回调中的异常:HandlerReceiveCallback
05-02 00:03:40.911 23064-23064/io.github.timeime.time E/MessageQueue JNI:java.lang.IllegalStateException:此活动需要使用Theme.AppCompat主题(或子代)。
在android.support.v7.app.AppCompateDelegateImplv9.createSubDecor(AppCompateDelegateImplv9.java:355)
在android.support.v7.app.AppCompateDelegateImplV9.ensureSubDecor(AppCompateDelegateImplV9.java:324)
在android.support.v7.app.AppCompateDelegateImplV9.setContentView(AppCompateDelegateImplV9.java:285)
位于android.support.v7.app.AppCompatDialog.setContentView(AppCompatDialog.java:83)
位于android.support.v7.app.AlertController.installContent(AlertController.java:225)
位于android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:257)
在android.app.Dialog.dispatchOnCreate(Dialog.java:578)上
在android.app.Dialog.show上(Dialog.java:314)
位于io.github.timeime.time.ImeService.showDialog(ImeService.java:60)
位于io.github.timeime.time.KeyboardUtil$1.onKey(KeyboardUtil.java:59)
在android.inputmethodservice.KeyboardView.detectAndSendKey(KeyboardView.java:831)中
在android.inputmethodservice.KeyboardView.onModifiedTouchEvent(KeyboardView.java:1361)上
在android.inputmethodservice.KeyboardView.onTouchEvent(KeyboardView.java:1224)中
在android.view.view.dispatchTouchEvent上(view.java:9993)
在android.view.ViewGroup.DispatchTransformedToucheEvent(ViewGroup.java:2839)上
位于android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)
在android.view.ViewGroup.DispatchTransformedToucheEvent(ViewGroup.java:2839)上
位于android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)
在android.view.ViewGroup.DispatchTransformedToucheEvent(ViewGroup.java:2839)上
位于android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)
在android.view.ViewGroup.DispatchTransformedToucheEvent(ViewGroup.java:2839)上
位于android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)
在android.view.ViewGroup.DispatchTransformedToucheEvent(ViewGroup.java:2839)上
位于android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)
在com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2831)上
在com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1863)上
位于android.app.Dialog.dispatchTouchEvent(Dialog.java:982)
在android.inputmethodservice.SoftInputWindow.dispatchTouchEvent(SoftInputWindow.java:153)上
在com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2792)上
位于android.view.view.dispatchPointerEvent(view.java:10228)
位于android.view.ViewRootImpl$viewPostimeiInputStage.processPointerEvent(ViewRootImpl.java:5350)
在android.view.ViewRootImpl$viewPostimeiInputStage.onProcess中(ViewRootImpl.java:5186)