我有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
}
答案 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是您在创建标签时提供的标签。 由于这是一个静态变量,您可以在任何类中作为标志访问它。