В моей активности есть следующий элемент управления Tab. Он содержит 2 вкладки.
При нажатии Tab
, он должен перейти к новому activity
.
Но у меня с этим 2 проблемы.
1.) дает мне IllegalArgumentException
, когда используется следующий код:
TabHost tabHost=(TabHost)FindViewById(Resource.Id.tabHost);
tabHost.Setup();
TabHost.TabSpec spec1=tabHost.NewTabSpec("Tab 1");
spec1.SetContent(Resource.Id.tab1);
Intent i = new Intent(this, typeof(Activity1));
spec1.SetContent(i);
spec1.SetIndicator("Tab 1");
TabHost.TabSpec spec2=tabHost.NewTabSpec("Tab 2");
spec2.SetContent(Resource.Id.tab2);
Intent i = new Intent(this, typeof(Activity2));
spec2.SetContent(i);
spec2.SetIndicator("Tab 2");
tabHost.AddTab(spec1);
tabHost.AddTab(spec2);
2.) и для демонстрации я попробовал этот простой код:
TabHost tabHost=(TabHost)FindViewById(Resource.Id.tabHost);
tabHost.Setup();
TabHost.TabSpec spec1=tabHost.NewTabSpec("Tab 1");
spec1.SetContent(Resource.Id.tab1);
spec1.SetIndicator("Tab 1");
TabHost.TabSpec spec2=tabHost.NewTabSpec("Tab 2");
spec2.SetContent(Resource.Id.tab2);
spec2.SetIndicator("Tab 2");
tabHost.AddTab(spec1);
tabHost.AddTab(spec2);
Но в этом случае Tab
- это , всегда фокусирующийся .
т.е. У меня есть EditText
в моей деятельности, и как только я пытаюсь что-то напечатать, фокус переходит на Tab
.
Понятия не имею, почему это происходит, какое-либо решение?
Я абсолютный новичок в моно для Android, поэтому любая помощь приветствуется ..
EDIT
Учитывая предложения, я использовал это:
TabHost.TabSpec spec;
Intent intent;
TabHost tabHost=(TabHost)FindViewById(Resource.Id.tabHost);
tabHost.Setup();
intent = new Intent (this, typeof (HeatMap));
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);
Но я получил эту ошибку:
java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'?
android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:649)
android.widget.TabHost.setCurrentTab(TabHost.java:323)
android.widget.TabHost.addTab(TabHost.java:213)
stockgadget.controls.HeatMap.n_onCreate(Native Method)
stockgadget.controls.HeatMap.onCreate(HeatMap.java:25)
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
android.app.ActivityThread.access$2300(ActivityThread.java:125)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:123)