마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

TextView setText 할 때 NullPointerException 에러

0 추천
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <kyh.com.canvas_test2.CustomView
        android:id="@+id/customView"
        android:layout_width="wrap_content"
        android:layout_height="450dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="15dp"
        android:id="@+id/andgle_text"
        />

</LinearLayout>

텍스트 뷰에 계산해서 나온 값을 표시해주려고 settext를 하면 

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
        at kyh.com.canvas_test2.CustomView$1.handleMessage(CustomView.java:202)

위와 같이 에러가 나는데요

MainActivity에서

setContentView(R.layout.activity_main);

를 하고,

View 상속한 CustomView 클래스에서

TextView AngleText;
AngleText = new TextView(getContext());
AngleText = (TextView) findViewById(R.id.andgle_text);
AngleText.setText(string);

를 하는데 위와 같은 에러가 납니다.

뭔가 inflate인가 그거로 view.findViewByID로 프레그먼트 클레스에서 지정해주니까 이런 비슷한 상황이 해결된 적이 있는데 

이 클래스는 뷰상속 클래스고 어떻게 처리해줘야 하는지 모르겠습니다.

 

 

 

 

 

수로수 (180 포인트) 님이 2019년 6월 5일 질문
수로수님이 2019년 6월 5일 수정

1개의 답변

0 추천
View를 상속한 CustomView 또한 View 의 속성을 그대로 가지고 있습니다. View에서 하듯

CustomView 생성자에서

 

LinearLayout linear = (LinearLayout)inflate(context, R.layout.activity_main, null);

setContentView(linear);

AngleText = (TextView) findViewById(R.id.andgle_text);

AngleText.setText(string);

순으로 호출 하시면 될 겁니다.
익명사용자 님이 2019년 6월 5일 답변
...