I have a half screen custom view and a TextView in my activity.
<com.sted.test.mainView
android:id="@+id/mainView" android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<TextView android:id="@+id/tvScore" android:layout_height="wrap_content" android:layout_width="wrap_content"
android:layout_alignParentLeft="true" android:layout_alignParentBottom="true" />
Upon clicking on the custom view, how can I update the TextView in my activity?
Currently I have this piece of coding in my custom view’s onTouchEvent() but it hits a NullPointerException in the setText() part. Should I never update the TextView in my custom view?
TextView tvScore = (TextView) findViewById(R.id.tvScore);
tvScore.setText("Updated!");
You can’t “see” the TextView tvScore in your custom view’s code.
findViewById()looks for views in the hierarchy starting from the view from which you’re calling it, or from hierarchy root if you’re callingActivity.findViewById()(and of course this works only aftersetContentView()).If your custom view was a compound view like say a linear layour containing some TextViews, then it would make sense using
findViewById()in there.The solution is finding the textview for example in
onCreate()and then passing it to the custom view in some way (like someset..()method).EDIT
If in your custom view you have something like:
you can do something like:
so that since then you would have a reference to the textview inside your custom view’s code. It would be like some sort of setup.