尽管经常进行搜索,但我找不到可能是一个非常简单的问题的答案。
我有一个创建弹出窗口的方法。然后,我需要访问弹出窗口的XML的TextViews并更改文本。问题是我的textView返回null,因此当我尝试在底部调用的方法中设置文本时,给我一个空引用异常,countDown();
这是在一个活动中运行,而不是一个片段。我理解空引用异常的原则,但不能解决这里发生的事情或如何解决它。
以下是该方法的代码:
public void clockPopup()
{
LayoutInflater inflater = (LayoutInflater)this.GetSystemService(Context.LayoutInflaterService);
View myPopup = inflater.Inflate (Resource.Layout.PopUpClockTimer, null);
offerExpired = FindViewById<TextView> (Resource.Id.offer_expired); //returns null
timerDigit = FindViewById<TextView> (Resource.Id.test_timer); //returns null
PopupWindow popup = new PopupWindow (myPopup, ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent, true);
popup.ShowAtLocation (myPopup, GravityFlags.Center, 0,0);
popup.Update ();
RunOnUiThread (() => {
countDown ();
});
}
这是我试图访问
的TextViews的xml <TextView
android:id="@+id/test_timer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30sp"/>
<TextView
android:id="@+id/offer_expired"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30sp"/>
任何帮助表示感谢。
答案 0 :(得分:0)
您的FindViewById正在错误的父级中搜索。这应该可以解决问题:
myPopup.FindViewById<TextView>