2013-12-21 4 views
0

Я разрабатываю приложение для чата с помощью Android. Программно теперь я могу добавить вкладку по необходимости. Но проблема в том, что я не могу закрыть одну вкладку. tabhost.clearAllTabs закрывает все вкладки. Я хочу закрыть конкретную вкладку, когда другой пользователь покинул окно чата. Можно ли использовать tabhost? хотя нет прямого способа закрыть вкладку, есть ли какой-либо косвенный способ закрыть вкладку?Закладка закрытия Android в tabHost

спасибо.

Update:

TabHost tabHost; 
public class TActivity extends TabActivity { 

    tabHost = getTabHost();     
} 

public void addTAb(){ 

     TabSpec tabSpec = tabHost.newTabSpec("counter:"+counter);  

     View tab = LayoutInflater.from(getTabHost().getContext()).inflate(R.layout.tab, null);    
     tabSpec.setIndicator(tab);   
     Intent tabIntent = new Intent(this, Foo.class); 
     tabSpec.setContent(tabIntent); 

     tabHost.addTab(tabSpec);   

     tabHost.setCurrentTabByTag(--); 
     tabCounter = tabCounter +1; 
} 

ответ

0

ли вы попробовать что-то вроде этого кода:

myTabhost.getTabWidget() 
    .removeView(myTabhost.getTabWidget() 
    .getChildTabViewAt(myTab)); // myTab is the one you want to close 

Я видел это на этот вопрос: Close tab programmatically TabHost

Упование вы будете иметь ожидаемый результат.

+0

друг, его не работает. Где я должен вставлять этот код в «tabActivity» или «Intent activity». Также я использую пользовательский tabwidget. Я разместил небольшое изображение с закрытой кнопкой. Когда кто-то нажимает на это представление, можно ли закрыть вкладку? & Как отличить эту кнопку «закрыть» для каждой привязки? – userx

+0

Я думаю, вы должны вставить это в 'TabActivity'. И да, я думаю, вы можете использовать метод OnClickListener. Но можете ли вы опубликовать класс «TabActivity», код, который должен найти подходящее решение? – Fllo

+0

действительно благодарю вас за интерес. Теперь моя проблема решена. На самом деле я довольно занят, поэтому я не нашел решения здесь. Скоро я отправлю его здесь. – userx

0

Чтобы закрыть вкладку, я сделал следующий трюк &, наконец, он работает.

1-я Я установил одну вкладку по умолчанию &, сохраняя список всех новых вкладок.

//local list 
private LinkedList<String> tabList = new LinkedList<String>(); 
//adding tab 
TabSpec tabSpec = tabHost.newTabSpec(tab_id); 
tabHost.addTab(tabSpec); 
//making local entry 
tabsList.add(tab_id); 

Затем, используя следующий код, который я удаляет конкретную вкладку,

tabHost.getTabWidget().getChildTabViewAt(tabHost.getCurrentTab()).setVisibility(View.GONE); 

затем выбирает последнюю вкладку из локального списка & переключателя на эту вкладку, используя следующий код,

String tabid = tabList.getLast();  
tabHost.setCurrentTabByTag(tabid); 

Последнего шаг не обязательно, но иногда я не получил правильное представление tabHost, если не переключиться на другую вкладку. Если все вкладки закрыты, перейдите на вкладку по умолчанию.

Надеюсь, это может быть полезно и вам, ребята.

Если у кого-то есть лучший способ, сообщите нам об этом.

спасибо.