Я сослал this на SO, поскольку проблема была похожа на мою.
В своей основной деятельности я вызываю класс TabControl
, который расширяет ActivityGroup
.
Обратите внимание, что я не могу расширить свой основной класс с ActivityGroup
, поскольку хочу использовать функцию Custom_Title
, которая не будет возможна с ActivityGroup
.
1).основной класс:
public class MainActivity: Activity
{
TabControl _tabControl;
protected override void OnCreate (Bundle bundle)
{
_tabControl=new TabControl();
_tabControl.CreateTabs();
}
}
2.) Класс TabControl:
public class TabControl:ActivityGroup
{
TabHost tabHost;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView(Resource.Layout.TabView);
}
public void CreateTabs()
{
try
{
tabHost=(TabHost)FindViewById(Resource.Id.tabHost);
LocalActivityManager mLocalActivityManager = new LocalActivityManager(this, false);
tabHost.Setup(mLocalActivityManager);
//tabHost.Setup();
TabHost.TabSpec spec;
Intent intent;
intent = new Intent (this, typeof (MainActivity));
intent.AddFlags (ActivityFlags.NewTask);
spec=tabHost.NewTabSpec("Heat Map");
spec.SetIndicator("Heat Map");
spec.SetContent(intent);
tabHost.AddTab(spec);
intent = new Intent (this, typeof (LiveMkt));
intent.AddFlags (ActivityFlags.NewTask);
spec=tabHost.NewTabSpec("Live Mkt");
spec.SetIndicator("Live Mkt");
spec.SetContent(intent);
tabHost.AddTab(spec);
tabHost.CurrentTab = 1;
}
catch(Exception ex)
{}
}
}
3.) TabView.xml:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/tabLayout">
<TabHost
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabHost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp"
android:layout_alignParentTop="true"/>
</RelativeLayout>
</TabHost>
</RelativeLayout>
Но я получаю следующую ошибку:
Module Name : TabControl
Method Name : CreateTabs
Exception Details : Java.Lang.NullPointerException: Exception of type 'Java.Lang.NullPointerException' was thrown.
at Android.Runtime.JNIEnv.CallNonvirtualObjectMethod (IntPtr jobject, IntPtr jclass, IntPtr jmethod, Android.Runtime.JValue[] parms) [0x00000] in <filename unknown>:0
at Android.App.Activity.FindViewById (Int32 id) [0x00000] in <filename unknown>:0
at StockGadget.Controls.TabControl.CreateTabs () [0x00000] in <filename unknown>:0
--- End of managed exception stack trace ---
java.lang.NullPointerException
at android.app.Activity.findViewById(Activity.java:1637)
Поскольку я абсолютный новичок в Mono for Android
, любая помощь приветствуется ...