Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在表格布局中导航时,键盘打开_Android_Android Tablayout_Android Keypad - Fatal编程技术网

Android 在表格布局中导航时,键盘打开

Android 在表格布局中导航时,键盘打开,android,android-tablayout,android-keypad,Android,Android Tablayout,Android Keypad,我正在使用一个简单的表格来显示我的应用程序中由RecycleServiceAdapter组成的三个不同列表,如下所示: 问题是,每次加载此活动或更改选项卡时,键盘都会自动显示 以下是我的不同文件: MainActivity.java private DrawerLayout mDrawerLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceS

我正在使用一个简单的表格来显示我的应用程序中由RecycleServiceAdapter组成的三个不同列表,如下所示:

问题是,每次加载此活动或更改选项卡时,键盘都会自动显示

以下是我的不同文件:

MainActivity.java

private DrawerLayout mDrawerLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

    setContentView(R.layout.activity_main);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    final ActionBar ab = getSupportActionBar();
    if (ab != null) {
        ab.setHomeAsUpIndicator(R.drawable.ic_menu);
        ab.setDisplayHomeAsUpEnabled(true);
    }

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    if (navigationView != null) {
        setupDrawerContent(navigationView);
    }

    ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
    if (viewPager != null) {
        setupViewPager(viewPager);
    }

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
    if (tabLayout != null){
        tabLayout.setupWithViewPager(viewPager);
    }

    //Initializing NavigationView
    navigationView = (NavigationView) findViewById(R.id.nav_view);

    //Setting Navigation View Item Selected Listener to handle the item click of the navigation menu
    if (navigationView != null) {
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {

            // This method will trigger on item Click of navigation menu
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {

            //Checking if the item is in checked state or not, if not make it in checked state
            if (menuItem.isChecked()) menuItem.setChecked(false);
            else menuItem.setChecked(true);

            //Closing drawer on item click
            mDrawerLayout.closeDrawers();

            switch (menuItem.getItemId()) {
                // Drawer options
            }
        });
    }
}


/*
@Override
public boolean onCreateOptionsMenu(Menu item) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, item);

    SearchManager searchManager =
            (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView =
            (SearchView) item.findItem(R.id.action_search).getActionView();
    searchView.setSearchableInfo(
            searchManager.getSearchableInfo(getComponentName()));
    return true;
}*/


@Override
public boolean onCreateOptionsMenu(final Menu menu) {
    getMenuInflater().inflate(R.menu.options_menu, menu);

    final MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (android.widget.SearchView) searchItem.getActionView();

    final MenuItem filterItem = menu.findItem(R.id.action_filter);

    searchView.setQueryHint(getString(R.string.search_hint));
    searchView.setIconified(false);
    searchView.onActionViewExpanded();

    return super.onCreateOptionsMenu(menu);
}



@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            mDrawerLayout.openDrawer(GravityCompat.START);
            return true;
    }
    return super.onOptionsItemSelected(item);
}


private void setupViewPager(ViewPager viewPager) {
    Adapter adapter = new Adapter(getSupportFragmentManager());
    adapter.addFragment(new ListFragment(), "1");
    adapter.addFragment(new ListFragment(), "2");
    adapter.addFragment(new ListFragment(), "3");
    viewPager.setAdapter(adapter);
}

private void setupDrawerContent(NavigationView navigationView) {
    navigationView.setNavigationItemSelectedListener(
            new NavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(MenuItem menuItem) {
                    menuItem.setChecked(true);
                    mDrawerLayout.closeDrawers();
                    return true;
                }
            });
}

static class Adapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragments = new ArrayList<>();
    private final List<String> mFragmentTitles = new ArrayList<>();

    public Adapter(FragmentManager fm) {
        super(fm);
    }

    public void addFragment(Fragment fragment, String title) {
        mFragments.add(fragment);
        mFragmentTitles.add(title);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragments.get(position);
    }

    @Override
    public int getCount() {
        return mFragments.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitles.get(position);
    }
}
private RecyclerView mRecyclerView;

private PostAdapter mAdapter;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
    getActivity().invalidateOptionsMenu();

}

public int getViewID() {
    return R.layout.fragment_post_list;
}

public void bindViews(View v) {
    mRecyclerView = (RecyclerView) v.findViewById(R.id.recyclerview);
    loadUpdates();
}

@Override
public void onAttach(Activity activity){
    super.onAttach(activity);
    if (mRecyclerView == null){
        return;
    }

}


private void loadUpdates() {
    showListView(false);

    //Gets information from the server and call setAdapter()

}

private void setAdapter() {

    if ( ((MainActivity)getActivity()).getPostList() == null) {
        Log.i(MainActivity.TAG, "not ready to set Adapter");
        return;
    }

    showListView(true);

    mAdapter = new PostAdapter(((MainActivity)getActivity()).getPostList(),this.getContext());
    mRecyclerView.setAdapter(mAdapter);

}


private void showListView(boolean show) {
    mRecyclerView.setVisibility(show ? View.VISIBLE : View.GONE);
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    RecyclerView rv = (RecyclerView) inflater.inflate(
            R.layout.fragment_post_list, container, false);

    setupRecyclerView(rv);
    mRecyclerView = rv;
    loadUpdates();
    return rv;
}

private void setupRecyclerView(RecyclerView recyclerView) {
    recyclerView.setLayoutManager(new LinearLayoutManager(recyclerView.getContext()));

}


public static class SimpleStringRecyclerViewAdapter
        extends RecyclerView.Adapter<SimpleStringRecyclerViewAdapter.ViewHolder> {

    private final TypedValue mTypedValue = new TypedValue();
    private int mBackground;
    private List<String> mValues;

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public String mBoundString;

        public final View mView;
        public final TextView mTextView;

        public ViewHolder(View view) {
            super(view);
            mView = view;
            mTextView = (TextView) view.findViewById(R.id.post_name);
        }

        @Override
        public String toString() {
            return super.toString() + " '" + mTextView.getText();
        }
    }

    public String getValueAt(int position) {
        return mValues.get(position);
    }

    public SimpleStringRecyclerViewAdapter(Context context, List<String> items) {
        context.getTheme().resolveAttribute(R.attr.selectableItemBackground, mTypedValue, true);
        mBackground = mTypedValue.resourceId;
        mValues = items;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.list_item, parent, false);
        view.setBackgroundResource(mBackground);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, int position) {
        holder.mBoundString = mValues.get(position);
        holder.mTextView.setText(mValues.get(position));
    }

    @Override
    public int getItemCount() {
        return mValues.size();
    }
}
私人抽屉布局mDrawerLayout;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u输入\状态\始终\隐藏);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
最终ActionBar ab=getSupportActionBar();
如果(ab!=null){
ab.setHomeAsUpIndicator(R.drawable.ic_菜单);
ab.setDisplayHomeAsUpEnabled(真);
}
mDrawerLayout=(抽屉布局)findViewById(R.id.抽屉布局);
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
if(navigationView!=null){
setupDrawerContent(导航视图);
}
ViewPager ViewPager=(ViewPager)findViewById(R.id.ViewPager);
if(viewPager!=null){
设置viewPager(viewPager);
}
TabLayout TabLayout=(TabLayout)findViewById(R.id.tabs);
if(tabLayout!=null){
tabLayout.setupWithViewPager(viewPager);
}
//初始化NavigationView
navigationView=(navigationView)findViewById(R.id.nav_视图);
//设置导航视图项Selected Listener以处理导航菜单中的项单击
if(navigationView!=null){
navigationView.setNavigationItemSelectedListener(新建navigationView.OnNavigationItemSelectedListener()){
//此方法将在单击导航菜单项时触发
@凌驾
公共布尔值onNavigationItemSelected(MenuItem MenuItem){
//检查项目是否处于选中状态,如果未处于选中状态,则使其处于选中状态
如果(menuItem.isChecked())menuItem.setChecked(false);
else menuItem.setChecked(true);
//按项目关闭抽屉
mDrawerLayout.closeDrawers();
开关(menuItem.getItemId()){
//抽屉选项
}
});
}
}
/*
@凌驾
公共布尔onCreateOptions菜单(菜单项){
MenuInflater充气机=getMenuInflater();
充气机。充气(右菜单。选项菜单,项目);
搜索管理器搜索管理器=
(SearchManager)getSystemService(Context.SEARCH\u服务);
搜索视图搜索视图=
(SearchView)item.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(
getSearchableInfo(getComponentName());
返回true;
}*/
@凌驾
公共布尔onCreateOptions菜单(最终菜单){
getMenuInflater().充气(R.menu.options\u菜单,菜单);
final MenuItem searchItem=menu.findItem(R.id.action\u search);
SearchView SearchView=(android.widget.SearchView)searchItem.getActionView();
final MenuItem filterItem=menu.findItem(R.id.action\u filter);
setQueryHint(getString(R.string.search_hint));
searchView.setIconified(false);
searchView.onActionViewExpanded();
返回super.onCreateOptions菜单(菜单);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例android.R.id.home:
mDrawerLayout.openDrawer(重力compat.START);
返回true;
}
返回super.onOptionsItemSelected(项目);
}
专用无效设置ViewPager(ViewPager ViewPager){
适配器适配器=新适配器(getSupportFragmentManager());
addFragment(新的ListFragment(),“1”);
addFragment(新的ListFragment(),“2”);
addFragment(新的ListFragment(),“3”);
viewPager.setAdapter(适配器);
}
私有void setupDrawerContent(导航视图导航视图){
navigationView.setNavigationItemSelectedListener(
新建NavigationView.OnNavigationItemSelectedListener(){
@凌驾
公共布尔值onNavigationItemSelected(MenuItem MenuItem){
menuItem.setChecked(true);
mDrawerLayout.closeDrawers();
返回true;
}
});
}
静态类适配器扩展FragmentPagerAdapter{
私有最终列表MFFragments=new ArrayList();
私有最终列表MFFragmentTitles=new ArrayList();
公共适配器(FragmentManager fm){
超级(fm);
}
public void addFragment(片段片段,字符串标题){
添加(片段);
MFFragmentTitles.add(标题);
}
@凌驾
公共片段getItem(int位置){
返回mFragments.get(位置);
}
@凌驾
public int getCount(){
返回mffragments.size();
}
@凌驾
公共字符序列getPageTitle(int位置){
返回MFFragmentTitles.get(位置);
}
}
ListFragment.java

private DrawerLayout mDrawerLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

    setContentView(R.layout.activity_main);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    final ActionBar ab = getSupportActionBar();
    if (ab != null) {
        ab.setHomeAsUpIndicator(R.drawable.ic_menu);
        ab.setDisplayHomeAsUpEnabled(true);
    }

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    if (navigationView != null) {
        setupDrawerContent(navigationView);
    }

    ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
    if (viewPager != null) {
        setupViewPager(viewPager);
    }

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
    if (tabLayout != null){
        tabLayout.setupWithViewPager(viewPager);
    }

    //Initializing NavigationView
    navigationView = (NavigationView) findViewById(R.id.nav_view);

    //Setting Navigation View Item Selected Listener to handle the item click of the navigation menu
    if (navigationView != null) {
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {

            // This method will trigger on item Click of navigation menu
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {

            //Checking if the item is in checked state or not, if not make it in checked state
            if (menuItem.isChecked()) menuItem.setChecked(false);
            else menuItem.setChecked(true);

            //Closing drawer on item click
            mDrawerLayout.closeDrawers();

            switch (menuItem.getItemId()) {
                // Drawer options
            }
        });
    }
}


/*
@Override
public boolean onCreateOptionsMenu(Menu item) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, item);

    SearchManager searchManager =
            (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView =
            (SearchView) item.findItem(R.id.action_search).getActionView();
    searchView.setSearchableInfo(
            searchManager.getSearchableInfo(getComponentName()));
    return true;
}*/


@Override
public boolean onCreateOptionsMenu(final Menu menu) {
    getMenuInflater().inflate(R.menu.options_menu, menu);

    final MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (android.widget.SearchView) searchItem.getActionView();

    final MenuItem filterItem = menu.findItem(R.id.action_filter);

    searchView.setQueryHint(getString(R.string.search_hint));
    searchView.setIconified(false);
    searchView.onActionViewExpanded();

    return super.onCreateOptionsMenu(menu);
}



@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            mDrawerLayout.openDrawer(GravityCompat.START);
            return true;
    }
    return super.onOptionsItemSelected(item);
}


private void setupViewPager(ViewPager viewPager) {
    Adapter adapter = new Adapter(getSupportFragmentManager());
    adapter.addFragment(new ListFragment(), "1");
    adapter.addFragment(new ListFragment(), "2");
    adapter.addFragment(new ListFragment(), "3");
    viewPager.setAdapter(adapter);
}

private void setupDrawerContent(NavigationView navigationView) {
    navigationView.setNavigationItemSelectedListener(
            new NavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(MenuItem menuItem) {
                    menuItem.setChecked(true);
                    mDrawerLayout.closeDrawers();
                    return true;
                }
            });
}

static class Adapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragments = new ArrayList<>();
    private final List<String> mFragmentTitles = new ArrayList<>();

    public Adapter(FragmentManager fm) {
        super(fm);
    }

    public void addFragment(Fragment fragment, String title) {
        mFragments.add(fragment);
        mFragmentTitles.add(title);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragments.get(position);
    }

    @Override
    public int getCount() {
        return mFragments.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitles.get(position);
    }
}
private RecyclerView mRecyclerView;

private PostAdapter mAdapter;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
    getActivity().invalidateOptionsMenu();

}

public int getViewID() {
    return R.layout.fragment_post_list;
}

public void bindViews(View v) {
    mRecyclerView = (RecyclerView) v.findViewById(R.id.recyclerview);
    loadUpdates();
}

@Override
public void onAttach(Activity activity){
    super.onAttach(activity);
    if (mRecyclerView == null){
        return;
    }

}


private void loadUpdates() {
    showListView(false);

    //Gets information from the server and call setAdapter()

}

private void setAdapter() {

    if ( ((MainActivity)getActivity()).getPostList() == null) {
        Log.i(MainActivity.TAG, "not ready to set Adapter");
        return;
    }

    showListView(true);

    mAdapter = new PostAdapter(((MainActivity)getActivity()).getPostList(),this.getContext());
    mRecyclerView.setAdapter(mAdapter);

}


private void showListView(boolean show) {
    mRecyclerView.setVisibility(show ? View.VISIBLE : View.GONE);
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    RecyclerView rv = (RecyclerView) inflater.inflate(
            R.layout.fragment_post_list, container, false);

    setupRecyclerView(rv);
    mRecyclerView = rv;
    loadUpdates();
    return rv;
}

private void setupRecyclerView(RecyclerView recyclerView) {
    recyclerView.setLayoutManager(new LinearLayoutManager(recyclerView.getContext()));

}


public static class SimpleStringRecyclerViewAdapter
        extends RecyclerView.Adapter<SimpleStringRecyclerViewAdapter.ViewHolder> {

    private final TypedValue mTypedValue = new TypedValue();
    private int mBackground;
    private List<String> mValues;

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public String mBoundString;

        public final View mView;
        public final TextView mTextView;

        public ViewHolder(View view) {
            super(view);
            mView = view;
            mTextView = (TextView) view.findViewById(R.id.post_name);
        }

        @Override
        public String toString() {
            return super.toString() + " '" + mTextView.getText();
        }
    }

    public String getValueAt(int position) {
        return mValues.get(position);
    }

    public SimpleStringRecyclerViewAdapter(Context context, List<String> items) {
        context.getTheme().resolveAttribute(R.attr.selectableItemBackground, mTypedValue, true);
        mBackground = mTypedValue.resourceId;
        mValues = items;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.list_item, parent, false);
        view.setBackgroundResource(mBackground);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, int position) {
        holder.mBoundString = mValues.get(position);
        holder.mTextView.setText(mValues.get(position));
    }

    @Override
    public int getItemCount() {
        return mValues.size();
    }
}
private RecyclerView mRecyclerView;
私人邮政适配器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
设置选项菜单(真);
getActivity().InvalidateOptions菜单();
}
public int getViewID(){
返回R.layout.fragment\u post\u列表;
}
公共视图(视图v){
mRecyclerView=(RecyclerView)v.findViewById(R.id.RecyclerView);
loadUpdates();
}
@凌驾
公共事务主任(活动){
超级转速计(活动);
if(mRecyclerView==null){
返回;
}
}
私有void loadUpdates(){
showListView(假);
//从服务器获取信息并调用setAdapter()
}
私有void setAdapter(){
if(((MainActivity)getActivity()).getPostList()==null){
Log.i(MainActivity.TAG,“未准备好设置适配器”);
返回;
}
showListView(真)
            InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            if (inputMethodManager != null)
                inputMethodManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), 0);