Android 带有自定义标题的TabActivity提供NullPointerException
我有一个launcher活动,它包含两个选项卡,分别对应于两个独立的活动Android 带有自定义标题的TabActivity提供NullPointerException,android,nullpointerexception,xamarin.android,android-tabactivity,custom-titlebar,Android,Nullpointerexception,Xamarin.android,Android Tabactivity,Custom Titlebar,我有一个launcher活动,它包含两个选项卡,分别对应于两个独立的活动HeatMap和LiveMkt 正如我在某个地方读到的,在儿童活动中不能使用以下语句: Window.RequestFeature(WindowFeatures.CustomTitle); 所以我试着跟着 启动器活动的OnCreate()包含: base.OnCreate (bundle); Window.RequestFeature(WindowFeatures.CustomTitle); SetContentView(
HeatMap
和LiveMkt
正如我在某个地方读到的,在儿童活动中不能使用以下语句:
Window.RequestFeature(WindowFeatures.CustomTitle);
所以我试着跟着
启动器活动的OnCreate()包含:
base.OnCreate (bundle);
Window.RequestFeature(WindowFeatures.CustomTitle);
SetContentView(Resource.Layout.TabView);
//Code to create tabs which points to two activities `HeatMap` and `LiveMkt`
base.OnCreate (bundle);
SetContentView(Resource.Layout.LiveMkt);
Window.SetFeatureInt(WindowFeatures.CustomTitle,Resource.Layout.TitleBar);
edsearch = (EditText) FindViewById(Resource.Id.edsearch);
_autoSearchBox = new AutoSearchBox();
_autoSearchBox.LoadSearchBox(this,edsearch,lsym);
LiveMkt的OnCreate()
包含:
base.OnCreate (bundle);
Window.RequestFeature(WindowFeatures.CustomTitle);
SetContentView(Resource.Layout.TabView);
//Code to create tabs which points to two activities `HeatMap` and `LiveMkt`
base.OnCreate (bundle);
SetContentView(Resource.Layout.LiveMkt);
Window.SetFeatureInt(WindowFeatures.CustomTitle,Resource.Layout.TitleBar);
edsearch = (EditText) FindViewById(Resource.Id.edsearch);
_autoSearchBox = new AutoSearchBox();
_autoSearchBox.LoadSearchBox(this,edsearch,lsym);
其中AutoSearchBox
类具有LoadSearchBox()
,其中包含
public void LoadSearchBox(Activity activity,EditText edsearch,ListView lsym)
{
edsearch.TextChanged+= delegate
{//Something
}
}
但是当我调试这个时,我在LoadSearchBox()中得到NullPointerException
,用于edsearch
和lsym
,即使我在LiveMkt
中有这两个元素并将它们传递给LoadSearchBox()
LiveMkt.xml
包含ListView
lsym和TitleBar.xml
包含EditText
edsearch
StackTrace:
Exception Details : System.NullReferenceException: Object reference not set to an instance of an object
at AutoSearchBox.LoadSearchBox (Android.App.Activity activity, Android.Widget.EditText edsearch, Android.Widget.ListView lsym)
由于我是Mono Android新手,非常感谢您的帮助。您确定edsearch
不为空吗?如果找不到视图,该方法将返回null,因此您可能会遇到这种情况。让我重新表述一下。请把所有的stacktrace都贴出来。为我的假设道歉。我只是习惯于看到更大的痕迹。请发布你的LiveMkt.xml
Aah!您可以看到FindViewById()
是一种活动方法,并且由于LiveMkt.xml
不包含EditText
(根据您上面的评论),它将返回null,因为它只会尝试在LiveMkt.xml
中查找id为edsearch
的视图。你需要弄清楚如何将EventHandler附加到自定义窗口标题视图(这不是你活动的一部分)。但是这里有一个问题,因为我无法破解建议的第二部分……在语句edsearch=(EditText)FindViewById(Resource.Id.edsearch)之后,它是空的代码>在LiveMkt
的OnCreate()
中。但是我不明白为什么它是空的,即使我有一个TitleBar.xml
和edsearch
。。