Android Can';t使用relativeLayout处理抽屉布局

Android Can';t使用relativeLayout处理抽屉布局,android,android-layout,drawerlayout,Android,Android Layout,Drawerlayout,我正在开发一个应用程序,我在其中使用了DroperLayout和RelativeLayout。RelativeLayout包含一个edittext、一个按钮和一个子linearLayout以及一个webview 应用程序问题 当我运行应用程序时,屏幕分为两个视图,一个视图显示一个没有内容的白色页面,另一个视图显示一个edittext和灰色屏幕 在移动设备上运行apk文件时,它没有安装-只是显示安装进度,但没有安装应用程序 xml文件 <android.support.v4.widg

我正在开发一个应用程序,我在其中使用了DroperLayout和RelativeLayout。RelativeLayout包含一个edittext、一个按钮和一个子linearLayout以及一个webview

应用程序问题

  • 当我运行应用程序时,屏幕分为两个视图,一个视图显示一个没有内容的白色页面,另一个视图显示一个edittext和灰色屏幕
  • 在移动设备上运行apk文件时,它没有安装-只是显示安装进度,但没有安装应用程序
  • xml文件

        <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/drawer_layout"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent" >
    
      <RelativeLayout
          android:id="@+id/frame_container"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent" />
    
    
      <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="240dp"
        android:layout_height="wrap_content"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@color/list_divider"
        android:dividerHeight="1dp"        
        android:listSelector="@drawable/list_selector"
        android:background="@color/list_background"/>
    
    <RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    
    <Button
        android:id="@+id/bsearch"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/Esearch"
        android:layout_alignParentRight="true"
        android:text="GO"
        android:visibility="invisible" />
    
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    
        <WebView
            android:id="@+id/websearch"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
    
    <EditText
        android:id="@+id/Esearch"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/linearLayout1"
        android:layout_marginTop="16dp"
        android:ems="10"
        android:imeOptions="actionSearch"
        android:singleLine="true" >
    
        <requestFocus />
    </EditText> </RelativeLayout> </android.support.v4.widget.DrawerLayout>
    
    **mainActivityclass**
    
    
     package com.example.onebrowser;
    
    import java.util.ArrayList;
    
    import android.app.Activity;
    import android.app.Fragment;
    import android.app.FragmentManager;
    import android.content.res.Configuration;
    import android.content.res.TypedArray;
    import android.os.Bundle;
    import android.support.v4.app.ActionBarDrawerToggle;
    import android.support.v4.widget.DrawerLayout;
    import android.util.Log;
    import android.view.KeyEvent;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.inputmethod.EditorInfo;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.widget.AdapterView;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.TextView.OnEditorActionListener;
    
    public class MainActivity extends Activity {
        EditText Gsearch;
        Button bsearch;
        WebView webView;
        Button b1;
        private DrawerLayout mDrawerLayout;
        private ListView mDrawerList;
        private ActionBarDrawerToggle mDrawerToggle;
    
        // nav drawer title
        private CharSequence mDrawerTitle;
    
        // used to store app title
        private CharSequence mTitle;
    
        // slide menu items
        private String[] navMenuTitles;
        private TypedArray navMenuIcons;
        private ArrayList<String>navDrawerIteams;
        private ArrayList<NavDrawerItem> navDrawerItems;
        private NavDrawerListAdapter adapter;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            webView=(WebView)findViewById(R.id.websearch);
            bsearch=(Button)findViewById(R.id.bsearch);
            Gsearch=(EditText)findViewById(R.id.Esearch);
    
            mTitle=mDrawerTitle=getTitle();
            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), true, "22"));
            // 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), true, "50+"));
    
    
            // 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);
    
            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);
            }
        }
    
        /**
         * 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) {
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // toggle nav drawer on selecting action bar app icon/title
            if (mDrawerToggle.onOptionsItemSelected(item)) {
                return true;
            }
            // Handle action bar actions click
            switch (item.getItemId()) {
            case R.id.action_settings:
                return true;
            default:
                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);
            menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
            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 FindPeopleFragment();
                break;
            case 2:
                fragment = new PhotosFragment();
                break;
            case 3:
                fragment = new CommunityFragment();
                break;
            case 4:
                fragment = new PagesFragment();
                break;
            case 5:
                fragment = new WhatsHotFragment();
                break;
    
            default:
                break;
            }
    
            if (fragment != null) {
                FragmentManager fragmentManager = getFragmentManager();
                fragmentManager.beginTransaction()
                        .replace(R.id.frame_container, fragment).commit();
    
                // update selected item and title, then close the drawer
                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);
    
    
    
            Gsearch.setOnEditorActionListener(new OnEditorActionListener() {
                @Override
                public boolean onEditorAction(TextView v, int actionId,
                        KeyEvent event) {
                    // TODO Auto-generated method stub
                    if(actionId==EditorInfo.IME_ACTION_SEARCH)
                    {
    
                        bsearch.performClick();
                        return true;
                    }
                    return true;
                }
            });
    
    
            bsearch.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                     String url=Gsearch.getText().toString();
                    webView.getSettings().setJavaScriptEnabled(true);
                    webView.loadUrl("https://www.google.com/search?q="+url);
                    webView.setWebViewClient(new WebViewClient());
                }
            });
    
        }
    
    
    
    }
    
      **2nd class**
    
            package com.example.onebrowser;
    
        import java.util.ArrayList;
    
        import android.app.Activity;
        import android.content.Context;
        import android.view.LayoutInflater;
        import android.view.View;
        import android.view.ViewGroup;
        import android.widget.BaseAdapter;
        import android.widget.ImageView;
        import android.widget.TextView;
    
        public class NavDrawerListAdapter extends BaseAdapter {
    
            private Context context;
            private ArrayList<NavDrawerItem> navDrawerItems;
    
            public NavDrawerListAdapter(Context context, ArrayList<NavDrawerItem> navDrawerItems){
                this.context = context;
                this.navDrawerItems = navDrawerItems;
            }
    
            @Override
            public int getCount() {
                return navDrawerItems.size();
            }
    
            @Override
            public Object getItem(int position) {       
                return navDrawerItems.get(position);
            }
    
            @Override
            public long getItemId(int position) {
                return position;
            }
    
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                if (convertView == null) {
                    LayoutInflater mInflater = (LayoutInflater)
                            context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
                    convertView = mInflater.inflate(R.layout.drawer_list_item, null);
                }
    
                ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon);
                TextView txtTitle = (TextView) convertView.findViewById(R.id.title);
                TextView txtCount = (TextView) convertView.findViewById(R.id.counter);
    
                imgIcon.setImageResource(navDrawerItems.get(position).getIcon());        
                txtTitle.setText(navDrawerItems.get(position).getTitle());
    
                // displaying count
                // check whether it set visible or not
                if(navDrawerItems.get(position).getCounterVisibility()){
                    txtCount.setText(navDrawerItems.get(position).getCount());
                }else{
                    // hide the counter view
                    txtCount.setVisibility(View.GONE);
                }
    
                return convertView;
            }
    **3rd class**
    package com.example.onebrowser;
    
    public class NavDrawerItem {
    
        private String title;
        private int icon;
        private String count = "0";
        // boolean to set visibility of the counter
        private boolean isCounterVisible = false;
    
        public NavDrawerItem(){}
    
        public NavDrawerItem(String title, int icon){
            this.title = title;
            this.icon = icon;
        }
    
        public NavDrawerItem(String title, int icon, boolean isCounterVisible, String count){
            this.title = title;
            this.icon = icon;
            this.isCounterVisible = isCounterVisible;
            this.count = count;
        }
    
        public String getTitle(){
            return this.title;
        }
    
        public int getIcon(){
            return this.icon;
        }
    
        public String getCount(){
            return this.count;
        }
    
        public boolean getCounterVisibility(){
            return this.isCounterVisible;
        }
    
        public void setTitle(String title){
            this.title = title;
        }
    
        public void setIcon(int icon){
            this.icon = icon;
        }
    
        public void setCount(String count){
            this.count = count;
        }
    
        public void setCounterVisibility(boolean isCounterVisible){
            this.isCounterVisible = isCounterVisible;
        }
    }
    
    
    
    有课程,但我在这里发布了一些需要的课程

        <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/drawer_layout"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent" >
    
      <RelativeLayout
          android:id="@+id/frame_container"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent" />
    
    
      <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="240dp"
        android:layout_height="wrap_content"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@color/list_divider"
        android:dividerHeight="1dp"        
        android:listSelector="@drawable/list_selector"
        android:background="@color/list_background"/>
    
    <RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    
    <Button
        android:id="@+id/bsearch"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/Esearch"
        android:layout_alignParentRight="true"
        android:text="GO"
        android:visibility="invisible" />
    
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    
        <WebView
            android:id="@+id/websearch"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
    
    <EditText
        android:id="@+id/Esearch"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/linearLayout1"
        android:layout_marginTop="16dp"
        android:ems="10"
        android:imeOptions="actionSearch"
        android:singleLine="true" >
    
        <requestFocus />
    </EditText> </RelativeLayout> </android.support.v4.widget.DrawerLayout>
    
    **mainActivityclass**
    
    
     package com.example.onebrowser;
    
    import java.util.ArrayList;
    
    import android.app.Activity;
    import android.app.Fragment;
    import android.app.FragmentManager;
    import android.content.res.Configuration;
    import android.content.res.TypedArray;
    import android.os.Bundle;
    import android.support.v4.app.ActionBarDrawerToggle;
    import android.support.v4.widget.DrawerLayout;
    import android.util.Log;
    import android.view.KeyEvent;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.inputmethod.EditorInfo;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.widget.AdapterView;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.TextView.OnEditorActionListener;
    
    public class MainActivity extends Activity {
        EditText Gsearch;
        Button bsearch;
        WebView webView;
        Button b1;
        private DrawerLayout mDrawerLayout;
        private ListView mDrawerList;
        private ActionBarDrawerToggle mDrawerToggle;
    
        // nav drawer title
        private CharSequence mDrawerTitle;
    
        // used to store app title
        private CharSequence mTitle;
    
        // slide menu items
        private String[] navMenuTitles;
        private TypedArray navMenuIcons;
        private ArrayList<String>navDrawerIteams;
        private ArrayList<NavDrawerItem> navDrawerItems;
        private NavDrawerListAdapter adapter;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            webView=(WebView)findViewById(R.id.websearch);
            bsearch=(Button)findViewById(R.id.bsearch);
            Gsearch=(EditText)findViewById(R.id.Esearch);
    
            mTitle=mDrawerTitle=getTitle();
            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), true, "22"));
            // 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), true, "50+"));
    
    
            // 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);
    
            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);
            }
        }
    
        /**
         * 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) {
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // toggle nav drawer on selecting action bar app icon/title
            if (mDrawerToggle.onOptionsItemSelected(item)) {
                return true;
            }
            // Handle action bar actions click
            switch (item.getItemId()) {
            case R.id.action_settings:
                return true;
            default:
                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);
            menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
            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 FindPeopleFragment();
                break;
            case 2:
                fragment = new PhotosFragment();
                break;
            case 3:
                fragment = new CommunityFragment();
                break;
            case 4:
                fragment = new PagesFragment();
                break;
            case 5:
                fragment = new WhatsHotFragment();
                break;
    
            default:
                break;
            }
    
            if (fragment != null) {
                FragmentManager fragmentManager = getFragmentManager();
                fragmentManager.beginTransaction()
                        .replace(R.id.frame_container, fragment).commit();
    
                // update selected item and title, then close the drawer
                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);
    
    
    
            Gsearch.setOnEditorActionListener(new OnEditorActionListener() {
                @Override
                public boolean onEditorAction(TextView v, int actionId,
                        KeyEvent event) {
                    // TODO Auto-generated method stub
                    if(actionId==EditorInfo.IME_ACTION_SEARCH)
                    {
    
                        bsearch.performClick();
                        return true;
                    }
                    return true;
                }
            });
    
    
            bsearch.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                     String url=Gsearch.getText().toString();
                    webView.getSettings().setJavaScriptEnabled(true);
                    webView.loadUrl("https://www.google.com/search?q="+url);
                    webView.setWebViewClient(new WebViewClient());
                }
            });
    
        }
    
    
    
    }
    
      **2nd class**
    
            package com.example.onebrowser;
    
        import java.util.ArrayList;
    
        import android.app.Activity;
        import android.content.Context;
        import android.view.LayoutInflater;
        import android.view.View;
        import android.view.ViewGroup;
        import android.widget.BaseAdapter;
        import android.widget.ImageView;
        import android.widget.TextView;
    
        public class NavDrawerListAdapter extends BaseAdapter {
    
            private Context context;
            private ArrayList<NavDrawerItem> navDrawerItems;
    
            public NavDrawerListAdapter(Context context, ArrayList<NavDrawerItem> navDrawerItems){
                this.context = context;
                this.navDrawerItems = navDrawerItems;
            }
    
            @Override
            public int getCount() {
                return navDrawerItems.size();
            }
    
            @Override
            public Object getItem(int position) {       
                return navDrawerItems.get(position);
            }
    
            @Override
            public long getItemId(int position) {
                return position;
            }
    
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                if (convertView == null) {
                    LayoutInflater mInflater = (LayoutInflater)
                            context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
                    convertView = mInflater.inflate(R.layout.drawer_list_item, null);
                }
    
                ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon);
                TextView txtTitle = (TextView) convertView.findViewById(R.id.title);
                TextView txtCount = (TextView) convertView.findViewById(R.id.counter);
    
                imgIcon.setImageResource(navDrawerItems.get(position).getIcon());        
                txtTitle.setText(navDrawerItems.get(position).getTitle());
    
                // displaying count
                // check whether it set visible or not
                if(navDrawerItems.get(position).getCounterVisibility()){
                    txtCount.setText(navDrawerItems.get(position).getCount());
                }else{
                    // hide the counter view
                    txtCount.setVisibility(View.GONE);
                }
    
                return convertView;
            }
    **3rd class**
    package com.example.onebrowser;
    
    public class NavDrawerItem {
    
        private String title;
        private int icon;
        private String count = "0";
        // boolean to set visibility of the counter
        private boolean isCounterVisible = false;
    
        public NavDrawerItem(){}
    
        public NavDrawerItem(String title, int icon){
            this.title = title;
            this.icon = icon;
        }
    
        public NavDrawerItem(String title, int icon, boolean isCounterVisible, String count){
            this.title = title;
            this.icon = icon;
            this.isCounterVisible = isCounterVisible;
            this.count = count;
        }
    
        public String getTitle(){
            return this.title;
        }
    
        public int getIcon(){
            return this.icon;
        }
    
        public String getCount(){
            return this.count;
        }
    
        public boolean getCounterVisibility(){
            return this.isCounterVisible;
        }
    
        public void setTitle(String title){
            this.title = title;
        }
    
        public void setIcon(int icon){
            this.icon = icon;
        }
    
        public void setCount(String count){
            this.count = count;
        }
    
        public void setCounterVisibility(boolean isCounterVisible){
            this.isCounterVisible = isCounterVisible;
        }
    }
    
    **mainActivityclass**
    package com.example.onebrowser;
    导入java.util.ArrayList;
    导入android.app.Activity;
    导入android.app.Fragment;
    导入android.app.FragmentManager;
    导入android.content.res.Configuration;
    导入android.content.res.TypedArray;
    导入android.os.Bundle;
    导入android.support.v4.app.ActionBarDrawerToggle;
    导入android.support.v4.widget.DrawerLayout;
    导入android.util.Log;
    导入android.view.KeyEvent;
    导入android.view.Menu;
    导入android.view.MenuItem;
    导入android.view.view;
    导入android.view.view.OnClickListener;
    导入android.view.inputmethod.EditorInfo;
    导入android.webkit.WebView;
    导入android.webkit.WebViewClient;
    导入android.widget.AdapterView;
    导入android.widget.Button;
    导入android.widget.EditText;
    导入android.widget.ListView;
    导入android.widget.TextView;
    导入android.widget.TextView.OnEditorActionListener;
    公共类MainActivity扩展了活动{
    编辑文本搜索;
    按钮搜索;
    网络视图;
    按钮b1;
    私人抽屉布局mDrawerLayout;
    私有列表视图mDrawerList;
    私有操作bardrawertoggle mDrawerToggle;
    //导航抽屉标题
    私有字符序列mDrawerTitle;
    //用于存储应用程序标题
    私有字符序列mTitle;
    //幻灯片菜单项
    私有字符串[]navMenuTitles;
    专用型雷达导航仪;
    私人ArrayListNavItems;
    私人ArrayList NavWrites;
    专用导航适配器;
    @凌驾
    创建时受保护的void(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    webView=(webView)findViewById(R.id.websearch);
    b搜索=(按钮)findViewById(R.id.b搜索);
    Gsearch=(EditText)findViewById(R.id.Esearch);
    mTitle=mDrawerTitle=getTitle();
    navMenuTitles=getResources().getStringArray(R.array.nav\u抽屉\u项目);
    //参考资料中的导航抽屉图标
    navMenuIcons=getResources().obtainTypedArray(R.array.nav_抽屉图标);
    mDrawerLayout=(抽屉布局)findViewById(R.id.抽屉布局);
    mDrawerList=(ListView)findViewById(R.id.list\u slidermenu);
    navDrawerItems=新的ArrayList();
    //将导航抽屉项添加到阵列
    //家
    添加(新的NavDrawerItem(navMenuTitles[0],navMenuIcons.getResourceId(0,-1));
    //找人
    添加(新的NavDrawerItem(navMenuTitles[1],navMenuIcons.getResourceId(1,-1));
    //照片
    添加(新的NavDrawerItem(navMenuTitles[2],navMenuIcons.getResourceId(2,-1));
    //社区,将在此处添加一个计数器
    添加(新的NavDrawerItem(navMenuTitles[3],navMenuIcons.getResourceId(3,-1),true,“22”);
    //页数
    add(新的NavDrawerItem(navMenuTitles[4],navMenuIcons.getResourceId(4,-1));
    //什么是热的,我们将在这里加一个计数器
    add(新的NavDrawerItem(navMenuTitles[5],navMenuIcons.getResourceId(5,-1),true,“50+”));
    //回收类型化数组
    navMenuIcons.recycle();
    setOnItemClickListener(新的SlideMenuClickListener());
    //设置导航抽屉列表适配器
    适配器=新的NavDroperListAdapter(getApplicationContext(),
    纳维特姆斯);
    mDrawerList.setAdapter(适配器);
    //启用操作栏应用程序图标并将其作为切换按钮
    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);
    mDrawerToggle=新操作BarDrawerToggle(此,mDrawerLayout,
    R.drawable.ic_抽屉,//导航菜单切换图标
    R.string.app_name,//导航抽屉打开-可访问性说明
    R.string.app_name//nav抽屉关闭-可访问性说明
    ) {
    公共无效onDrawerClosed(视图){
    getActionBar().setTitle(mTitle);
    //调用onPrepareOptions菜单()以显示操作栏图标
    无效操作菜单();
    }
    打开图纸上的公共空白(视图抽屉视图){
    getActionBar().setTitle(mDrawerTitle);
    //调用onPrepareOptions菜单()隐藏操作栏图标
    无效操作菜单();
    }
    };
    mDrawerLayout.setDrawerListener(mDrawerToggle);
    如果(savedInstanceState==null){
    //第一个导航项目的首次显示视图
    显示视图(0);
    }
    }
    /**
    *幻灯片菜单项单击“侦听器”
    * */
    私有类SlideMenuClickListener实现
    ListView.com侦听器{
    @凌驾
    public void onItemClick(AdapterView父视图、视图、整型位置、,
    长id){
    //所选导航抽屉项目的显示视图
    显示视图(位置);
    }
    }
    @凌驾
    公共布尔onCreateOptions菜单(菜单){
    getMenuInflater().充气(R.menu.main,menu);
    返回true;
    }
    @凌驾
    公共布尔值onOptionsItemSelected(菜单项项){
    //在选择操作栏应用程序图标/标题时切换导航抽屉
    如果(mDrawerT