每次打开我的应用程序的主页活动时都会出现键盘,无法隐藏键盘



我在其中使用了ACTION BAR和SEARCH VIEW。每次我打开滑动条或打开家庭活动时,它都会显示键盘。我认为它将焦点设置在操作栏的搜索视图上。但我无法不聚焦它。我尝试了这段代码来隐藏,但它不起作用。

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
And have also tried this

这是代码...

public class MainActivity extends FragmentActivity implements SearchView.OnQueryTextListener , DrawerLayout.DrawerListener,View.OnTouchListener{
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
public SearchView mSearchView;
private CharSequence mDrawerTitle;
String selectedItem;
private CharSequence mTitle;
private MatrixCursor cursor;
private ArrayList<String> list = new ArrayList<String>();
private String[] navMenuTitles;
private TypedArray navMenuIcons;
public static Boolean flag = false;
private ArrayList<NavDrawerItem> navDrawerItems;
private NavDrawerListAdapter adapter;   
MenuItem searchItem;
public static String state;
public static Boolean search_flag; 
@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);
    mTitle = mDrawerTitle = getTitle();
    search_flag=true;
    // load slide menu items
    navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
    // nav drawer icons from resources
    navMenuIcons = getResources().obtainTypedArray(R.array.nav_drawer_icons);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
    navDrawerItems = new ArrayList<NavDrawerItem>();
    // adding nav drawer items to array
    // Home
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
    // Find People
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
    // Photos
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
    // Communities, Will add a counter here
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));
    // Pages
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
    // What's hot, We  will add a counter here
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[6], navMenuIcons.getResourceId(6, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[7], navMenuIcons.getResourceId(7, -1)));
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);


    // Recycle the typed array
    navMenuIcons.recycle();
    mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
    // setting the nav drawer list adapter
    adapter = new NavDrawerListAdapter(getApplicationContext(), navDrawerItems);
    mDrawerList.setAdapter(adapter);
    // enabling action bar app icon and behaving it as toggle button
    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);

    /*final ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.action_bar,null);
    getActionBar().setCustomView(actionBarLayout);*/
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
            R.drawable.ic_drawer, //nav menu toggle icon
            R.string.app_name, // nav drawer open - description for accessibility
            R.string.app_name // nav drawer close - description for accessibility
    ) {
        public void onDrawerClosed(View view) {
            getActionBar().setTitle(mTitle);
            // calling onPrepareOptionsMenu() to show action bar icons
            invalidateOptionsMenu();
        }
        public void onDrawerOpened(View drawerView) {
            getActionBar().setTitle(mDrawerTitle);
            // calling onPrepareOptionsMenu() to hide action bar icons
            invalidateOptionsMenu();
        }
    };
    mDrawerLayout.setDrawerListener(mDrawerToggle);
    if (savedInstanceState == null) {
        // on first time display view for first nav item
        displayView(0);
    }

    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
       .detectCustomSlowCalls() 
       .detectDiskReads()
       .detectDiskWrites()
       .detectNetwork()
       .penaltyLog()
       .penaltyFlashScreen() 
       .build());
    try{

       StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
       .detectLeakedSqlLiteObjects()
       .detectLeakedClosableObjects() 
       .setClassInstanceLimit(Class.forName("com.shabdkosh.MainActivity"), 100)
       .penaltyLog()
       .build());}
    catch(Exception e){e.printStackTrace();}
    }
/**
 * Slide menu item click listener
 * */
private class SlideMenuClickListener implements
        ListView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        // display view for selected nav drawer item
        displayView(position);
    }
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    super.onCreateOptionsMenu(menu);
    getMenuInflater().inflate(R.menu.main, menu);
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    searchItem = menu.findItem(R.id.action_search).setVisible(true);
    mSearchView = (SearchView) searchItem.getActionView();
    mSearchView.setQueryHint(getResources().getString(R.string.search_hint));
    mSearchView.setIconifiedByDefault(false);
    mSearchView.setSubmitButtonEnabled(false);
    ((SearchView) searchItem.getActionView()).setIconified(true);
    mSearchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
    mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    mSearchView.setFocusable(false);
    searchItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS| MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
    if(search_flag){
    mSearchView.setOnQueryTextListener(this);}
    search_flag=false;
    return true;
}
public void hideSoftKeyboard(Activity activity) 
{
    InputMethodManager inputMethodManager = (InputMethodManager)activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
    inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    mSearchView.setFocusable(false);
    if(item.getItemId()==R.id.Hindi||item.getItemId()==R.id.English||item.getItemId()==R.id.home){
        mSearchView.setFocusable(false);
    }
    //search_flag=true;
    // toggle nav drawer on selecting action bar app icon/title
            if (mDrawerToggle.onOptionsItemSelected(item))
            {
                search_flag=true;
                //return true;
            }
            // Handle action bar actions click
            if(state.equals("home"))
            {
            switch (item.getItemId())
            {
            case R.id.Hindi:
                if (!Locale.getDefault().toString().equalsIgnoreCase("hi")) 
                {
                    String languageToLoad = "hi"; // language
                    Locale locale = new Locale(languageToLoad);
                    Locale.setDefault(locale);
                    Configuration config = new Configuration();
                    config.locale = locale;
                    getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());

                    Intent in=new Intent(getBaseContext(), MainActivity.class);
                    startActivity(in);
                    finish();

                } else 
                {
                    Toast.makeText(getApplicationContext(),getResources().getString(R.string.hin_sel), Toast.LENGTH_LONG).show();
                }
                return true;
            case R.id.English:
                if (!Locale.getDefault().toString().equalsIgnoreCase("en"))
                {
                    String languageToLoad = "en"; // language
                    Locale locale = new Locale(languageToLoad);
                    Locale.setDefault(locale);
                    Configuration config = new Configuration();
                    config.locale = locale;
                    getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());

                    Intent in=new Intent(getBaseContext(), MainActivity.class);
                    startActivity(in);
                    finish();
                } else {
                    Toast.makeText(getApplicationContext(),getResources().getString(R.string.Al_Eng_sel), Toast.LENGTH_LONG).show();
                }
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
        }else if(state.equals("quiz"))
        {
            switch (item.getItemId())
            {
            case R.id.Hindi:
            if (R.id.Hindi == item.getItemId())
            {
            String languageToLoad = "hi"; // language
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
            getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new Word_quiz_game()).commit();

            }
            else
            {
            Toast.makeText(getApplicationContext(),getResources().getString(R.string.hin_sel), Toast.LENGTH_LONG).show();
            }
            return true;
            case R.id.English:
            if (R.id.English == item.getItemId())
            {
            String languageToLoad = "en"; // language
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
            getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new Word_quiz_game()).commit();
            }
            else
            {
            Toast.makeText(getApplicationContext(),getResources().getString(R.string.Al_Eng_sel), Toast.LENGTH_LONG).show();
            }
            return true;
            default:
            return super.onOptionsItemSelected(item);
            }

            }
            else if(state.equals("wod"))
            {
            switch (item.getItemId())
            {
            case R.id.Hindi:
            if (R.id.Hindi == item.getItemId())
            {
            String languageToLoad = "hi"; // language
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
            getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new WordOFday_More()).commit();

            }
            else
            {
            Toast.makeText(getApplicationContext(),getResources().getString(R.string.hin_sel), Toast.LENGTH_LONG).show();
            }
            return true;
            case R.id.English:
            if (R.id.English == item.getItemId())
            {
            String languageToLoad = "en"; // language
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
            getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new WordOFday_More()).commit();
            }
            else
            {
            Toast.makeText(getApplicationContext(),getResources().getString(R.string.Al_Eng_sel), Toast.LENGTH_LONG).show();
            }
            return true;
            default:
            return super.onOptionsItemSelected(item);
            }
            }
            else if(state.equals("browse"))
            {
            switch (item.getItemId())
            {
            case R.id.Hindi:
            if (R.id.Hindi == item.getItemId())
            {
            String languageToLoad = "hi"; // language
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
            getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new Browse()).commit();

            }
            else
            {
            Toast.makeText(getApplicationContext(),getResources().getString(R.string.hin_sel), Toast.LENGTH_LONG).show();
            }
            return true;
            case R.id.English:
            if (R.id.English == item.getItemId())
            {
            String languageToLoad = "en"; // language
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
            getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new Browse()).commit();
            }
            else
            {
            Toast.makeText(getApplicationContext(),getResources().getString(R.string.Al_Eng_sel), Toast.LENGTH_LONG).show();
            }
            return true;
            default:
            return super.onOptionsItemSelected(item);
            }
            }
            else if(state.equals("his"))
            {
            switch (item.getItemId())
            {
            case R.id.Hindi:
            if (R.id.Hindi == item.getItemId())
            {
            String languageToLoad = "hi"; // language
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
            getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new His()).commit();

            }
            else
            {
            Toast.makeText(getApplicationContext(),getResources().getString(R.string.hin_sel), Toast.LENGTH_LONG).show();
            }
            return true;
            case R.id.English:
            if (R.id.English == item.getItemId())
            {
            String languageToLoad = "en"; // language
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
            getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new His()).commit();
            }
            else
            {
            Toast.makeText(getApplicationContext(),getResources().getString(R.string.Al_Eng_sel), Toast.LENGTH_LONG).show();
            }
            return true;
            default:
            return super.onOptionsItemSelected(item);
            }
            }
            else if(state.equals("fav"))
            {
            switch (item.getItemId())
            {
            case R.id.Hindi:
            if (R.id.Hindi == item.getItemId())
            {
            String languageToLoad = "hi"; // language
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
            getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new Fav()).commit();

            }
            else
            {
            Toast.makeText(getApplicationContext(),getResources().getString(R.string.hin_sel), Toast.LENGTH_LONG).show();
            }
            return true;
            case R.id.English:
            if (R.id.English == item.getItemId())
            {
            String languageToLoad = "en"; // language
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
            getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new Fav()).commit();
            }
            else
            {
            Toast.makeText(getApplicationContext(),getResources().getString(R.string.Al_Eng_sel), Toast.LENGTH_LONG).show();
            }
            return true;
            default:
            return super.onOptionsItemSelected(item);
            }
            }
            else if(state.equals("qod"))
            {
            switch (item.getItemId())
            {
            case R.id.Hindi:
            if (R.id.Hindi == item.getItemId())
            {
            String languageToLoad = "hi"; // language
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
            getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new Qod_more()).commit();

            }
            else
            {
            Toast.makeText(getApplicationContext(),getResources().getString(R.string.hin_sel), Toast.LENGTH_LONG).show();
            }
            return true;
            case R.id.English:
            if (R.id.English == item.getItemId())
            {
            String languageToLoad = "en"; // language
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
            getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new Qod_more()).commit();
            }
            else
            {
            Toast.makeText(getApplicationContext(),getResources().getString(R.string.Al_Eng_sel), Toast.LENGTH_LONG).show();
            }
            return true;
            default:
            return false;
            }
            }
            return super.onOptionsItemSelected(item);
            }
/* *
 * Called when invalidateOptionsMenu() is triggered
 */
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    // if nav drawer is opened, hide the action items
    boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
    try{
    menu.findItem(R.id.Hindi).setVisible(!drawerOpen);
    menu.findItem(R.id.action_search).collapseActionView();
    }
    catch(Exception e){
        e.printStackTrace();
        }
    mSearchView.setFocusable(false);
    hideKeyboard(MainActivity.this);
    getCurrentFocus().clearFocus();
    mDrawerLayout.requestFocus();
    if(state.equals("his")||state.equals("fav")){
    menu.removeItem(R.id.action_search);    
    String lang=Locale.getDefault().toString();
    if (lang.equalsIgnoreCase("en_IN")||lang.equalsIgnoreCase("en_US"))
    {
    menu.removeItem(R.id.English);
    menu.removeItem(R.id.Gujarati);
    menu.removeItem(R.id.Punjabi);
    menu.removeItem(R.id.Bengali);
    menu.removeItem(R.id.Marathi);
    menu.removeItem(R.id.Talugu);
    menu.removeItem(R.id.Tamil);
    menu.removeItem(R.id.Hindi);
    }
    else if(lang.equalsIgnoreCase("hi"))
    {
    menu.removeItem(R.id.Hindi);
    menu.removeItem(R.id.Gujarati);
    menu.removeItem(R.id.Punjabi);
    menu.removeItem(R.id.Bengali);
    menu.removeItem(R.id.Marathi);
    menu.removeItem(R.id.Talugu);
    menu.removeItem(R.id.Tamil);
    menu.removeItem(R.id.English);
    }}
    return super.onPrepareOptionsMenu(menu);
}
/**
 * Diplaying fragment view for selected nav drawer list item
 * */
private void displayView(int position) {
    // update the main content by replacing fragments
    Fragment fragment = null;
    switch (position) {
    case 0:
        fragment = new HomeFragment();
        break;
    case 1:
        fragment = new Qod_more();
        break;
    case 2:
        fragment = new WordOFday_More();
        break;
    case 3:
        fragment = new His();
        break;
    case 4:
        fragment = new Fav();
        break;
    case 5:
        fragment = new Word_quiz_game();
        break;
    case 6:
        fragment = new Browse();
        break;
    case 7:
        Intent in=new Intent(MainActivity.this, Settings.class);
        startActivity(in);
        break;
    default:
        break;
    }
    if (fragment != null) {
        android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager() ;
        android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.frame_container, fragment);
        fragmentTransaction.commit();
        mDrawerList.setItemChecked(position, true);
        mDrawerList.setSelection(position);
        setTitle(navMenuTitles[position]);
        mDrawerLayout.closeDrawer(mDrawerList);
    } else {
        // error in creating fragment
        Log.e("MainActivity", "Error in creating fragment");
    }
}
@Override
public void setTitle(CharSequence title) {
    mTitle = title;
    getActionBar().setTitle(mTitle);
}
/**
 * When using the ActionBarDrawerToggle, you must call it during
 * onPostCreate() and onConfigurationChanged()...
 */
@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    // Sync the toggle state after onRestoreInstanceState has occurred.
    mDrawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    // Pass any configuration change to the drawer toggls
    mDrawerToggle.onConfigurationChanged(newConfig);
}
@Override
public boolean onQueryTextChange(final String newText) {
    if (newText.length() > 0) {
        try {
            if (newText.length() > 0) {
                if (InternetConnection.isInternetOn(getApplicationContext())) {
                    list = new SearchData().getAutoSuggestion(newText,MainActivity.this);
                } else {
                    list = new SearchDataDB().getAutoSuggestion(newText,MainActivity.this);
                }
            }
            int[] to = { R.id.text_viewdemo };
            String s[] = Arrays.copyOf(list.toArray(),list.toArray().length, String[].class);
            System.out.println("array size :" + s.length);
            String[] columnNames = { "_id", "text" };
            cursor = new MatrixCursor(columnNames);
            String[] array = s; // if strings are in resources
            String[] temp = new String[2];
            int id = 0;
            for (String item : array) {
                temp[0] = Integer.toString(id++);
                temp[1] = item;
                cursor.addRow(temp);
            }
            String[] from = { "text" };
            final CursorAdapter cursorAdapter = new SimpleCursorAdapter(this, R.layout.suggest_list, cursor, from, to, 0);
            mSearchView.setSuggestionsAdapter(cursorAdapter);
            mSearchView.setOnSuggestionListener(new OnSuggestionListener() {
                @Override
                public boolean onSuggestionClick(int position) {
                    selectedItem = list.get(position);
                    mSearchView.setQuery(selectedItem, false);
                    if (InternetConnection.isInternetOn(getApplicationContext())) {
                        SearchData_DTO.setSearchData_DTO(new SearchData().getSearched(selectedItem, MainActivity.this));
                    } else {
                        SearchData_DTO.setSearchData_DTO(new SearchDataDB().getSearchedDB(selectedItem, MainActivity.this));
                        }
                    // cursorAdapter.getItem(position).toString();
                    Log.v("search view", selectedItem);                     
                    Intent i = new Intent(MainActivity.this, Search.class);
                    i.putExtra("selected", selectedItem);                       
                    startActivity(i);                       
                    flag=true;
                    return true;
                }
                @Override
                public boolean onSuggestionSelect(int position) {
                    return true;
                }
            });
            // mSearchView.onKeyUp(keyCode, event)
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } else {
        // TO REMOVE LIST WHEN NO TEXT IN SEARCHVIEW
        // mSearchView.onActionViewCollapsed();
        if (list != null) {
            if (list.size() > 0) {
                list.clear();
            }
        }
        // mSearchView.setIconified(true);
        int[] to = { R.id.text_viewdemo };
        String s[] = Arrays.copyOf(list.toArray(), list.toArray().length,String[].class);
        System.out.println("array size :" + s.length);
        String[] columnNames = { "_id", "text" };
        cursor = new MatrixCursor(columnNames);
        String[] array = s; // if strings are in resources
        String[] temp = new String[2];
        int id = 0;
        for (String item : array) {
            temp[0] = Integer.toString(id++);
            temp[1] = item;
            cursor.addRow(temp);
        }
        String[] from = { "text" };
        final CursorAdapter cursorAdapter = new SimpleCursorAdapter(this,R.layout.suggest_list, cursor, from, to,0);
        mSearchView.setSuggestionsAdapter(cursorAdapter);
        mSearchView.clearFocus();
        mSearchView.setIconified(false);
        mSearchView.setFocusableInTouchMode(false);
    }
    return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
    // TODO Auto-generated method stub
    mSearchView.setVisibility(View.VISIBLE);
    mSearchView.setVisibility(View.INVISIBLE);
    if (InternetConnection.isInternetOn(getApplicationContext())) {
        SearchData_DTO.setSearchData_DTO(new SearchData().getSearched(query, MainActivity.this));
    } else {
        SearchData_DTO.setSearchData_DTO(new SearchDataDB().getSearchedDB(query, MainActivity.this));
    }
    Intent i = new Intent(MainActivity.this, Search.class);
    i.putExtra("selected", query);
    startActivity(i);
    return true;
}

@Override
public void onDrawerClosed(View arg0) {
    // TODO Auto-generated method stub
    hideKeyboard(MainActivity.this);
    mDrawerLayout.requestFocus();
}
@Override
public void onDrawerOpened(View arg0) {
    // TODO Auto-generated method stub      
    hideKeyboard(MainActivity.this);
    mDrawerLayout.requestFocus();
}
@Override
public void onDrawerSlide(View arg0, float arg1) {
    // TODO Auto-generated method stub
    hideKeyboard(MainActivity.this);
    mDrawerLayout.requestFocus();
}
@Override
public void onDrawerStateChanged(int arg0) {
    // TODO Auto-generated method stub
    hideKeyboard(MainActivity.this);
    mDrawerLayout.requestFocus();
}
public  void hideKeyboard(Activity activity) 
{
    InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE);
    if (imm != null && activity != null) {
        View currentFocus = activity.getCurrentFocus();
        if (currentFocus != null) {
            imm.hideSoftInputFromWindow(currentFocus.getWindowToken(), 0);
            getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        }
    }
    mDrawerLayout.requestFocus();
}

@Override
public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    mDrawerLayout.requestFocus();
    return false;
}
public void setupUI(View view) {
    if(!(view instanceof SearchView)) {
        view.setOnTouchListener(new OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                searchItem.collapseActionView();
                return false;
            }
        });
    }
    //If a layout container, iterate over children and seed recursion.
    if (view instanceof ViewGroup) {
        for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
            View innerView = ((ViewGroup) view).getChildAt(i);
            setupUI(innerView);
        }
    }
    if(view instanceof DrawerLayout){
        System.out.println("drawer");
    }
}

}

希望这对您有所帮助:)

public void hideSoftKeyboard(Activity activity) {
        InputMethodManager inputMethodManager = (InputMethodManager)activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
    }

希望以下方法会有所帮助

searchView.setFocusableInTouchMode(true);

不确定这是否适用于操作栏,但值得一试。在正确的活动清单中添加它:android:windowSoftInputMode="stateHidden"

在你上创建选项菜单(菜单菜单)添加此代码,这将无法键盘问题

mSearchView.setQuery("", false);

mSearchView.setIconified(true);mSearchView.clearFocus();

  <EditText
            <requestFocus /><--Remove this from layout>
  </EditText>

最新更新