如何从另一个活动中识别Tabhost选项卡ID

时间:2010-10-16 09:06:29

标签: android tabactivity

我有TabActivity中的标签,该标签由另一个Activity中的方法的listview填充。当我单击选项卡中的列表视图时,我试图从onContextItemSelected中删除列表视图中的项目,并让tabhost中的选项卡回调与填充列表视图的活动中相同的方法。请问有谁知道如何从具有listview方法的Activity中识别执行操作的选项卡?

似乎在其他标签上知道像setTag()这样的方法来识别它们。我试过这个,如果我在TabActivity类,但如果我在其他Activity,我希望它调用fillAllData()。但我从eclipse得到一个警告,该行是一个死代码,而是调用fillShopData()代替。关于如何解决这个问题的任何想法?我希望我已经清楚了。感谢。

 /* code in activity class after delete is pressed in onContextItemSelected*/
    if( Categories.SHOP_TAB_TAG == 1) { // tab in categories TabActivity identified as int
        fillShopData(); // fill this data back in tab
        }else {
         fillAllData(); //  Dead Code from Activity
}

1 个答案:

答案 0 :(得分:0)

你可以在Constants类中有一个静态变量,它将保留你在OnTabChangedListener中修改的选项卡的轨道,如:

@Override
public void onTabChanged(String tabId) {
    if (tabId.equalsIgnoreCase("Assigned")) {
        Constants .LIST_ACTIVITY = 0;
    } else if (tabId.equalsIgnoreCase("Accepted")){
        Constants .LIST_ACTIVITY = 1;
    }else if (tabId.equalsIgnoreCase("Rejected")){
        Constants .LIST_ACTIVITY = 2;
    }else if (tabId.equalsIgnoreCase("Completed")){
        Constants .LIST_ACTIVITY = 3;
    }
}

其中tabId是您在创建标签时提供的标签。 由于这是一个静态变量,您可以在任何类中作为标志访问它。