gpt4 book ai didi

Textview setText上的Android空指针异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:37:04 26 4
gpt4 key购买 nike

在 UI 线程强制运行的 settext 上抛出的 Android 空指针异常

runOnUiThread(new Runnable() {
@Override
public void run() {
String name=portalData.getFullname();

setContentView(R.layout.gradebook);
tname.setText(name);

}
});

我已经创建了 TextView 的静态成员在 Create 上,我正在执行此操作

super.onStart();

    setContentView(R.layout.gradebook);
tname=(TextView)findViewById(R.id.fullname);

无法理解是什么原因造成的堆栈跟踪

10-15 15:19:07.090: E/AndroidRuntime(1604): FATAL EXCEPTION: main
10-15 15:19:07.090: E/AndroidRuntime(1604): java.lang.NullPointerException
10-15 15:19:07.090: E/AndroidRuntime(1604): at com.example.campus.Gradebook$ObservableDemo$6.run(Gradebook.java:518)
10-15 15:19:07.090: E/AndroidRuntime(1604): at android.os.Handler.handleCallback(Handler.java:730)
10-15 15:19:07.090: E/AndroidRuntime(1604): at android.os.Handler.dispatchMessage(Handler.java:92)
10-15 15:19:07.090: E/AndroidRuntime(1604): at android.os.Looper.loop(Looper.java:137)
10-15 15:19:07.090: E/AndroidRuntime(1604): at android.app.ActivityThread.main(ActivityThread.java:5103)
10-15 15:19:07.090: E/AndroidRuntime(1604): at java.lang.reflect.Method.invokeNative(Native Method)
10-15 15:19:07.090: E/AndroidRuntime(1604): at java.lang.reflect.Method.invoke(Method.java:525)
10-15 15:19:07.090: E/AndroidRuntime(1604): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
10-15 15:19:07.090: E/AndroidRuntime(1604): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-15 15:19:07.090: E/AndroidRuntime(1604): at dalvik.system.NativeStart.main(Native Method)

这是 XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".vbook" >

<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="70dp"
android:layout_marginTop="40dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#007FFF" />
</RelativeLayout>

最佳答案

反转这些

  TextView tname=(TextView)findViewById(R.id.fullname); 
setContentView(R.layout.vbook);

findViewById 查找具有当前膨胀布局中提到的 id 的 View 。

因此,如果即使在颠倒上述两个语句后你仍然得到 NPE,你应该检查你的 vbook.xml 是否有一个 id fullname 的 TextView 。

此外,您的 View 的所有初始化通常在 onCreate 中完成,这是 ui 线程。我不确定您要做什么。

您在 vbook.xml

中有以下内容
   <TextView
android:id="@+id/textView3"

所以改为TextView tname=(TextView)findViewById(R.id.textView3)

关于Textview setText上的Android空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19389028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com