0

我在 TabActivity 中有选项卡,该选项卡由另一个 Activity 中的方法的列表视图填充。当我单击选项卡中的列表视图时,我试图从 onContextItemSelected 中删除列表视图中的一个项目,并让 tabhost 中的选项卡回调填充列表视图的 Activity 中的相同方法。请问有谁知道我如何从具有 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
}
4

1 回答 1

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 是您在创建选项卡时提供的。由于这是一个静态变量,您可以在任何类中将其作为标志访问。

于 2011-07-26T06:06:35.147 回答