Android 异常:您是否忘记调用“public void setup (LocalActivityManager activityGroup)”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3272500/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Android Exception: Did you forget to call 'public void setup (LocalActivityManager activityGroup)'
提问by ZHAO Xiaojian
MyCode:
我的代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TabHost tabHost = (TabHost) findViewById(R.id.tabhost);
// LocalActivityManager mLocalActivityManager = new LocalActivityManager(this, false);
tabHost.setup();
TabSpec tabSpecCheckIn = tabHost.newTabSpec(getResources().getText(R.string.button_check_in).toString());
tabSpecCheckIn.setIndicator(getResources().getText(R.string.button_check_in).toString(), getResources().getDrawable(android.R.drawable.star_off));
tabSpecCheckIn.setContent(R.id.check_in);
tabHost.addTab(tabSpecCheckIn);
TabSpec tabSpecReview = tabHost.newTabSpec(getResources().getText(R.string.button_review).toString());
tabSpecReview.setIndicator(getResources().getText(R.string.button_review).toString(), getResources().getDrawable(android.R.drawable.star_off));
tabSpecReview.setContent(R.id.review);
tabHost.addTab(tabSpecReview);
TabSpec tabSpecMyCircles = tabHost.newTabSpec(getResources().getText(R.string.button_my_circles).toString());
tabSpecMyCircles.setIndicator(getResources().getText(R.string.button_my_circles).toString(), getResources().getDrawable(android.R.drawable.star_off));
tabSpecMyCircles.setContent(R.id.my_circle);
tabHost.addTab(tabSpecMyCircles);
TabSpec tabSpecMySettings = tabHost.newTabSpec(getResources().getText(R.string.button_settings).toString());
tabSpecMySettings.setIndicator(getResources().getText(R.string.button_settings).toString(), getResources().getDrawable(android.R.drawable.star_off));
tabSpecMySettings.setContent(new Intent(this,CheckInActivity.class));
tabHost.addTab(tabSpecMySettings);
tabHost.setCurrentTab(0);
}
}
XML:
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabHost android:id="@+id/tabhost"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TabWidget android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@android:id/tabs"
android:layout_gravity="bottom" />
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:paddingTop="65px">
<LinearLayout android:id="@+id/check_in"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:padding="5px">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="date"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout android:id="@+id/review"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:padding="5px">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="lieu"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout android:id="@+id/my_circle"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:padding="5px">
</LinearLayout>
<LinearLayout android:id="@+id/setting"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:padding="5px">
</LinearLayout>
</FrameLayout>
</TabHost>
</LinearLayout>
When I click the button of Setting, exctption:
当我点击设置按钮时,exctption:
Did you forget to call 'public void setup (LocalActivityManager activityGroup)'
您是否忘记调用“public void setup (LocalActivityManager activityGroup)”
Who Can help me. I try to extends from TabActiviy
or ActivityGroup
still other exceptions!!!
I want to put the buttons of Tabhost at bottom and when I click the button invoke different Activities!
谁能帮我。我尝试从TabActiviy
或ActivityGroup
其他异常中扩展!!!
我想把 Tabhost 的按钮放在底部,当我点击按钮时会调用不同的活动!
回答by douyw
you need change MainActivity's base class from Activity to ActivityGroup, as follows:
您需要将 MainActivity 的基类从 Activity 更改为 ActivityGroup,如下所示:
public class MainActivity extends ActivityGroup {
...
}
ActivityGroup will take care of an instance of LocalActivityManager. So you don't need to create it. After the base class is changed, just call getLocalActivityManager() function defined in the base class to get that instance. Call tabHost's setup function like this:
ActivityGroup 将处理 LocalActivityManager 的一个实例。所以你不需要创建它。基类更改后,只需调用基类中定义的 getLocalActivityManager() 函数即可获取该实例。像这样调用 tabHost 的设置函数:
tabHost.setup(this.getLocalActivityManager());
回答by Sameer Segal
Instead of setup():
而不是设置():
LocalActivityManager mLocalActivityManager = new LocalActivityManager(this, false);
setup(mLocalActivityManager);