2013-10-31 58 views
0

我在listview的onClick中動態創建標籤。每當我點擊相同的列表項重複的選項卡打開了相同的列表item.How我能阻止列表項當我們在運行時添加標籤時如何刪除重複標籤

這裏的的onClick重複攀開口是我的代碼

protected void onListItemClick(ListView l, View v, final int position, long id) 
{ 

    super.onListItemClick(l, v, position, id); 
    TabHost tabHost = Tabviewactivity.self.getTabHost(); 
    FriendInfo friend = friendAdapter.getItem(position); 
    Intent i = new Intent(); 
    i.setClass(this, Messaging.class); 
    i.putExtra(FriendInfo.USERNAME, friend.userName); 

    String friend_name = friend.userName; 
    tabHost.addTab(tabHost.newTabSpec(friend_name + Integer.toString(z)). 
          setIndicator(friend_name).setContent(i)); 
    tabHost.setCurrentTab(z); 
    z++; 

} 

感謝

TabHost tabHost = AllFriendList.self.getTabHost(); 
    int position = tabHost.getCurrentTab(); 

Log.d("Position",Integer.toString(position)); 
Log.d("Z val in delete()",Integer.toString(z)); 
if(position >0) 
{ 
tabHost.getCurrentTabView().setVisibility(View.GONE); 
tabHost.setCurrentTab(position+1); 
z-=1; 
if(z<0) 
z=0; 
} 
else if(position == 0) 
{ 
tabHost.getCurrentTabView().setVisibility(View.GONE); 
tabHost.setCurrentTab(position+1); 
z=0; 
} 
else if(position == z) 
{ 
tabHost.getCurrentTabView().setVisibility(View.GONE); 
tabHost.setCurrentTab(z-1); 
Log.d("Z value in final","lol"); 
Log.d("Pos",Integer.toString(position)); 
Log.d("z pos",Integer.toString(z)); 
} 
TabActivity parent = (TabActivity) getParent(); 
TabHost tabhost = parent.getTabHost(); 
tabhost.setCurrentTab(z+1); 
for(int i=0;i<tabList1.size();i++) 
{ 
if(tabList1.contains(frnd_position1)) 
{ 
tabList1.remove(i); 
} 
} 

回答

0

商店在ArrayList點擊的位置創建選項卡後在點擊檢查,如果所選擇的位置是在ArrayList中或not..if目前已經存在不添加其他選項卡添加新的標籤..

ArrayList<Integer> tabList = new ArrayList<Integer>(); 
protected void onListItemClick(ListView l, View v, final int position, long id) { 

super.onListItemClick(l, v, position, id); 

if(!tabList.contains(position)) { 
TabHost tabHost = Tabviewactivity.self.getTabHost(); 

FriendInfo friend = friendAdapter.getItem(position); 
Intent i = new Intent(); 
i.setClass(this, Messaging.class); 
i.putExtra(FriendInfo.USERNAME, friend.userName); 

String friend_name = friend.userName; 
tabHost.addTab(tabHost.newTabSpec(friend_name + Integer.toString(z)).setIndicator(friend_name).setContent(i)); 
tabHost.setCurrentTab(z); 
z++; 

tabList.add(position); 
} 
} 
+0

非常感謝@ bakriOnFire。這很好用 – user2873624

+0

多一個幫助@bakriOnFire可以設置當我第二次單擊列表項目時已經打開的標籤 – user2873624

+0

您可以在其他條件下使用tabHost.setCurrentTabByTag(標籤)使用您設置的標籤同時創建newTabSpec .. – bakriOnFire