2014-03-30 70 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 –