【问题标题】:Crash on longpress of edittext in Android在Android中长按edittext时崩溃
【发布时间】:2014-08-12 05:19:00
【问题描述】:

我有一个编辑文本。当我试图长按edittext应用程序崩溃时, 它给出了以下日志:

08-12 10:42:51.503: E/AndroidRuntime(838): FATAL EXCEPTION: main
08-12 10:42:51.503: E/AndroidRuntime(838): java.lang.NullPointerException
08-12 10:42:51.503: E/AndroidRuntime(838):  at  android.support.v7.app.ActionBarImplICS.getThemedContext(ActionBarImplICS.java:302)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.support.v7.app.ActionBarImplJB.getThemedContext(ActionBarImplJB.java:20)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.support.v7.app.ActionBarActivityDelegate.getActionBarThemedContext(ActionBarActivityDelegate.java:208)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.support.v7.app.ActionBarActivityDelegateICS.onActionModeStarted(ActionBarActivityDelegateICS.java:195)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.support.v7.app.ActionBarActivityDelegateICS$WindowCallbackWrapper.onActionModeStarted(ActionBarActivityDelegateICS.java:359)
08-12 10:42:51.503: E/AndroidRuntime(838):  at com.android.internal.policy.impl.PhoneWindow$DecorView.startActionMode(PhoneWindow.java:2342)
08-12 10:42:51.503: E/AndroidRuntime(838):  at com.android.internal.policy.impl.PhoneWindow$DecorView.startActionModeForChild(PhoneWindow.java:2260)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:654)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:654)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:654)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:654)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:654)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:654)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.view.View.startActionMode(View.java:4519)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.widget.Editor.startSelectionActionMode(Editor.java:1524)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.widget.Editor.performLongClick(Editor.java:845)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.widget.TextView.performLongClick(TextView.java:8268)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.view.View$CheckForLongPress.run(View.java:17882)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.os.Handler.handleCallback(Handler.java:730)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.os.Handler.dispatchMessage(Handler.java:92)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.os.Looper.loop(Looper.java:137)
08-12 10:42:51.503: E/AndroidRuntime(838):  at android.app.ActivityThread.main(ActivityThread.java:5214)
08-12 10:42:51.503: E/AndroidRuntime(838):  at java.lang.reflect.Method.invokeNative(Native Method)
08-12 10:42:51.503: E/AndroidRuntime(838):  at java.lang.reflect.Method.invoke(Method.java:525)
08-12 10:42:51.503: E/AndroidRuntime(838):  at  com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
08-12 10:42:51.503: E/AndroidRuntime(838):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
08-12 10:42:51.503: E/AndroidRuntime(838):  at dalvik.system.NativeStart.main(Native Method)  

我不知道为什么会这样。

【问题讨论】:

  • EditText的邮政编码
  • 操作栏为空。你的应用主题有吗?
  • 我正在使用这一行,requestWindowFeature(Window.FEATURE_NO_TITLE);会不会有问题?
  • 没有您的代码 sn-p 我们可以知道您的代码有什么问题,您可以发布您的代码吗?
  • 好的,我得到了解决方案,我的活动正在扩展 ActionBarActivity,我只是用 Activity 替换它,它工作正常。谢谢大家的关注和帮助.. :)

标签: android android-edittext long-press


【解决方案1】:

here试试这个

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ( keyCode == KeyEvent.KEYCODE_MENU ) {
        // do nothing
        return true;
    }
    return super.onKeyDown(keyCode, event);
} 

【讨论】:

【解决方案2】:

也许你需要 getSupportActionbar() 而不是 getActionbar()

【讨论】:

    【解决方案3】:

    我研究过这个问题,发现这个问题是 android OS 错误,为了解决这个问题,请在您的 values/styles 中删除以下代码:

    <item name="android:fontFamily">every things here</item>
    

    【讨论】:

      【解决方案4】:

      IF 你的EditTextTextInputLayout 包裹,这可能对你有帮助

      如果TextInputLayout 分配了theme,请确保其父级是

      parent="Widget.Design.TextInputLayout"

      这是我的问题,在更改父级后它开始正常工作。

      【讨论】:

        【解决方案5】:

        以下是对我有用的...

        1) 如果您的 EditText 使用 TextInputLayout 包装,则将以下属性添加到您的 Edittext

        android:longClickable = false

        2) 如果您为 EditText 使用自定义样式,则将以下属性添加到您的自定义样式代码中。

        <item name="android:longClickable">false</item>
        

        希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-06-12
          • 1970-01-01
          • 1970-01-01
          • 2011-12-22
          • 1970-01-01
          • 1970-01-01
          • 2015-02-21
          相关资源
          最近更新 更多