我在这里关注这个例子:
http://developer.android.com/resources/tutorials/views/hello-tabwidget.html
一切正常.第一次单击每个选项卡时,将oncreate调用绑定到该特定选项卡的Activity 的方法.但是,后续选项卡的选项不会调用此oncreate方法.
当选择该选项卡时,我需要能够在绑定到每个选项卡的Activity上执行oncreate(或其他方法).我知道我可以使用a setOnTabChangedListener,但我不确定如何访问绑定到选项卡的Activity,以便我可以调用oncreate(或其他)方法.
这是一个效率问题......这就是为什么你的onCreate方法没有被调用两次或更多次。TabActivity通过以下方式访问您的活动的更简单方法OnTabChangedListener是:
public class YourTabActivity extends TabActivity{
public void onCreate(Bundle InSavedInstanceState) {
super.onCreate(InSavedInstanceState);
final TabHost tabHost = getTabHost();
// blablabla
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
public void onTabChanged(String tabId) {
if( tabId.equals("the_id_of_your_tab") ){
NameOfThatActivity.self.theMethodYouWantToCall();
}
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在您的孩子活动中,您会看到类似以下内容:
public class NameOfThatActivity extends Activity{
public static NameOfThatActivity self;
// blah blah blah
public onCreate(Bundle b){
super.onCreate(b);
self = this;
}
public void theMethodYouWantToCall(){
// do what ever you want here
}
}
Run Code Online (Sandbox Code Playgroud)
虽然不美观,但是效果还不错。
| 归档时间: |
|
| 查看次数: |
7058 次 |
| 最近记录: |