2014-03-30 94 views
0

我有三個選項卡。第二個,當我點擊編輯文本時,鍵盤出現。我想隱藏鍵盤,只要我點擊tab1指示器。切換標籤時隱藏鍵盤

我已經挖開的方法來隱藏鍵盤:

InputMethodManager imm = (InputMethodManager)getSystemService(
    Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 

如何強制鍵盤隱藏時,將我的標籤?

+0

通話這個代碼在選項卡更改時? –

+0

@MarcoAcierno,我該怎麼做? – solalito

+0

您使用了ActionBar選項卡嗎? –

回答

1

設置聽衆OnTabChangeListenersetOnTabChangedListener在您的TabHost,並在TabHost.OnTabChangeListener裏面添加您的代碼塊。

事情是這樣的:

tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() 
{ 
    @Override 
    public void onTabChanged(String tabId) 
    { 
     InputMethodManager imm = (InputMethodManager) getSystemService(
       Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 

    } 
}); 

您可以使用動作條反正創建標籤

一個例子:

ActionBar actionBar = getActionBar(); 
actionBar.addTab(actionBar.newTab().setText("Your Tab").setTabListener(new ActionBar.TabListener() 
{ 
    @Override 
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) 
    { 
     InputMethodManager imm = (InputMethodManager)getSystemService(
       Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 
    } 

    @Override 
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) 
    { 

    } 

    @Override 
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) 
    { 

    } 
})); 

.addTab() .newTab() .setTabListener()

+0

你應該改變'tabHost'參考您的TabHost –

+0

你是什麼意思被棄用? TabHost和ActionBar之間有什麼區別嗎? – solalito

+0

因爲從Android 3.0開始,您可以使用ActionBar更好地提供相同的功能,如果您需要在版本<= Android 3.0中使用它,則可以使用支持庫。我發現這個,http://stackoverflow.com/questions/14272125/android-tabhost-deprecated –