Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 双击edittext时出现非法状态异常_Android_Android Layout_Android 3.0 Honeycomb_Illegalstateexception - Fatal编程技术网

Android 双击edittext时出现非法状态异常

Android 双击edittext时出现非法状态异常,android,android-layout,android-3.0-honeycomb,illegalstateexception,Android,Android Layout,Android 3.0 Honeycomb,Illegalstateexception,您好,我在双击EditText时遇到非法状态异常。这是堆栈跟踪。请帮助 06-30 11:18:24.970: ERROR/AndroidRuntime(3011): java.lang.IllegalStateException: ActionBarContextView can only be used with android:layout_width="match_parent" (or fill_parent) 06-30 11:18:24.970: ERROR/AndroidRunt

您好,我在双击EditText时遇到非法状态异常。这是堆栈跟踪。请帮助

06-30 11:18:24.970: ERROR/AndroidRuntime(3011): java.lang.IllegalStateException: ActionBarContextView can only be used with android:layout_width="match_parent" (or fill_parent)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at com.android.internal.widget.ActionBarContextView.onMeasure(ActionBarContextView.java:257)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.view.View.measure(View.java:10828)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4351)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1284)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:613)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:519)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.view.View.measure(View.java:10828)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4351)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:267)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:1890)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.view.View.measure(View.java:10828)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.view.ViewRoot.performTraversals(ViewRoot.java:884)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.view.ViewRoot.handleMessage(ViewRoot.java:2003)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.os.Looper.loop(Looper.java:132)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at android.app.ActivityThread.main(ActivityThread.java:4025)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at java.lang.reflect.Method.invokeNative(Native Method)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at java.lang.reflect.Method.invoke(Method.java:491)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
06-30 11:18:24.970: ERROR/AndroidRuntime(3011):     at dalvik.system.NativeStart.main(Native Method)

如果您阅读第一行,它会说
ActionBarContextView只能与android一起使用:layout\u width=“match\u parent”(或fill\u parent)
。换句话说,布局中的某些内容具有无效的
android:layout\u width
。检查…

我认为问题来自您实施的布局


我猜你给了actionBarContextView一个尺寸,这是不可能的。您必须为此项选择填充父项匹配父项。

尝试检查此处提供的解决方案:

编辑:

解决方案建议如下:

更改:

<style name="MyDialogTheme">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowFrame">@null</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

@android:彩色/透明
真的
真的
@空的
@android:style/Animation.Dialog
真的
@空的
假的
为此:

<style name="MyDialogTheme" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowFrame">@null</item>
    <item name="android:backgroundDimEnabled">false</item>

@android:彩色/透明
真的
真的
@空的
@android:style/Animation.Dialog
真的
@空的
假的

下一个示例的结果是:

  • 禁用关联菜单(双击等)
  • 并防止对话框在输入事件时崩溃
setCustomSelectionActionModeCallback(新的EditTextNoContextHelper())

公共类EditTextNoContextHelper实现ActionMode.Callback { 公共布尔onCreateActionMode(ActionMode模式,菜单) { 返回false; } 公共布尔onPrepareActionMode(操作模式,菜单) { 返回false; } 公共布尔值onActionItemClicked(ActionMode模式,菜单项) { 返回false; } 公共void onDestroyActionMode(ActionMode模式) { } }

虽然这在理论上可以回答这个问题,但在此处包含答案的基本部分,并提供链接供参考。 editText.setCustomSelectionActionModeCallback(new EditTextNoContextHelper());

public class EditTextNoContextHelper implements ActionMode.Callback { public boolean onCreateActionMode(ActionMode mode, Menu menu) { return false; } public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return false; } public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } public void onDestroyActionMode(ActionMode mode) { } }