Xamarin Android TextView返回null

时间:2014-10-14 08:53:11

标签: android null textview xamarin android-viewgroup

尽管经常进行搜索,但我找不到可能是一个非常简单的问题的答案。

我有一个创建弹出窗口的方法。然后,我需要访问弹出窗口的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"/>

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

您的FindViewById正在错误的父级中搜索。这应该可以解决问题:

myPopup.FindViewById<TextView>