【问题标题】:Error trying to change password hint font尝试更改密码提示字体时出错
【发布时间】:2013-05-04 11:37:06
【问题描述】:

我正在尝试听从 post 的建议:

但是当我运行这段代码时,我的程序崩溃了。这是我的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    /* Change the font for the password hint to match that of the
     * user name field */
    EditText pw = (EditText) findViewById(R.id.password);
    pw.setTypeface(Typeface.DEFAULT);    //<---Crashes on this line
    pw.setTransformationMethod(new PasswordTransformationMethod());

    setContentView(R.layout.activity_main);
}

这是该对象的 XML:

<EditText
    android:id="@+id/password"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/userName"
    android:layout_alignRight="@+id/appName"
    android:layout_below="@+id/userName"
    android:layout_marginTop="14dp"
    android:ems="10"
    android:hint="@string/password"
    android:inputType="textPassword" />

最后,这是我可以看到错误的 LogCat 输出:

05-09 00:30:21.408:E/Trace(16987):打开跟踪文件时出错:没有这样的 文件或目录 (2) 05-09 00:30:21.918: D/AndroidRuntime(16987): 关闭 VM 05-09 00:30:21.918: W/dalvikvm(16987): threadid=1: 线程以未捕获的异常退出 (group=0x40a71930) 05-09 00:30:21.978: E/AndroidRuntime(16987): 致命异常: main 05-09 00:30:21.978: E/AndroidRuntime(16987): java.lang.RuntimeException: 无法开始活动 组件信息{com.mobilenicity.gen_co_event_marketing_app/com.mobilenicity.gen_co_event_marketing_app.MainActivity}: java.lang.NullPointerException 05-09 00:30:21.978: E/AndroidRuntime(16987):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 android.app.ActivityThread.access$600(ActivityThread.java:141) 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 android.os.Handler.dispatchMessage(Handler.java:99) 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 android.os.Looper.loop(Looper.java:137) 05-09 00:30:21.978: E/AndroidRuntime(16987):在 android.app.ActivityThread.main(ActivityThread.java:5041) 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 java.lang.reflect.Method.invokeNative(Native Method) 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 java.lang.reflect.Method.invoke(Method.java:511) 05-09 00:30:21.978: E/AndroidRuntime(16987):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 dalvik.system.NativeStart.main(本机方法)05-09 00:30:21.978: E/AndroidRuntime(16987):原因:java.lang.NullPointerException 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 com.mobilenicity.gen_co_event_marketing_app.MainActivity.onCreate(MainActivity.java:26) 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 android.app.Activity.performCreate(Activity.java:5104) 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 05-09 00:30:21.978: E/AndroidRuntime(16987): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 05-09 00:30:21.978: E/AndroidRuntime(16987): ... 11 更多

无法弄清楚出了什么问题。有人能看到吗?谢谢!

【问题讨论】:

    标签: android fonts


    【解决方案1】:

    更改setContentView(R.layout.activity_main);的电话

    调用它就在 super.onCreate(savedInstanceState);


    当您执行EditText pw = (EditText) findViewById(R.id.password);findViewById“无法检索”您在layout 中定义的EditText 时(因为您在之后调用setContentView)所以findViewById 返回null 并且当您'重新做pw.setTypeface(Typeface.DEFAULT); 它会抛出一个NPE,因为pw 是null

    【讨论】:

      猜你喜欢
      • 2018-12-26
      • 2015-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多