侧滑菜单点击跳转主界面

来源:互联网 发布:小学宝这款软件怎么样 编辑:程序博客网 时间:2024/06/03 20:35

主Activity中写的代码

public class MainActivity extends AppCompatActivity {

private DrawerLayout drawerLayout;private FrameLayout frameLayout;private RelativeLayout relativeLayout;private ListView listView;private List<String> titles;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    //抽屉的跟布局    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);    //主内容区域的布局    frameLayout = (FrameLayout) findViewById(R.id.frame_layout);    //抽屉布局    relativeLayout = (RelativeLayout) findViewById(R.id.drawer_relative);    listView = (ListView) findViewById(R.id.list_view);    //给listView设置适配器    titles = new ArrayList<>();    titles.add("头条");    titles.add("社会");    titles.add("国内");    titles.add("军事");    titles.add("财经");    ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,android.R.id.text1, titles);    listView.setAdapter(adapter);    //刚进入页面的时候    NewsFragment newsFragment = new NewsFragment();    Bundle bundle = new Bundle();    bundle.putString("name",titles.get(0));    newsFragment.setArguments(bundle);    getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,newsFragment).commit();    //设置点击事件    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {        @Override        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {            //隐藏侧滑菜单            drawerLayout.closeDrawer(relativeLayout);            NewsFragment newsFragment = new NewsFragment();            Bundle bundle = new Bundle();            bundle.putString("name",titles.get(i));            newsFragment.setArguments(bundle);            getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,newsFragment).commit();            //drawerLayout.openDrawer(relativeLayout);//打开侧滑菜单        }    });    //抽屉的监听事件    drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {        /**         *         * @param drawerView         * @param slideOffset 表示的抽屉拖出来的宽度,,像素值         */        @Override        public void onDrawerSlide(View drawerView, float slideOffset) {        }        /**         * 抽屉打开了         * @param drawerView         */        @Override        public void onDrawerOpened(View drawerView) {        }        /**         * 抽屉关闭         * @param drawerView         */        @Override        public void onDrawerClosed(View drawerView) {        }        /**         * 抽屉的状态改变         *         * idle -- 表示与导航视图没有交互,静止         dragging -- 表示目前有与导航视图的交互,拖拽的状态         settling -- 表示有与导航视图的交互,并且导航视图正在关闭或打开         * @param newState         */        @Override        public void onDrawerStateChanged(int newState) {            Log.i("zhaungtai---",newState+"---");        }    });}

}

Activity的布局

xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:id=”@+id/drawer_layout”
android:layout_width=”match_parent”
android:layout_height=”match_parent”>

<!--主内容区域--><FrameLayout    android:id="@+id/frame_layout"    android:layout_width="match_parent"    android:layout_height="match_parent"></FrameLayout><!--侧滑的区域    侧滑菜单的默认背景颜色是半透明--><RelativeLayout    android:background="#ffffff"    android:id="@+id/drawer_relative"    android:layout_gravity="left"    android:layout_width="200dp"    android:layout_height="match_parent">    <ImageView        android:id="@+id/image_touxiang"        android:layout_centerHorizontal="true"        android:layout_margin="10dp"        android:src="@mipmap/ic_launcher"        android:layout_width="80dp"        android:layout_height="80dp" />    <ListView        android:id="@+id/list_view"        android:layout_below="@+id/image_touxiang"        android:layout_width="match_parent"        android:layout_height="match_parent">    </ListView></RelativeLayout>

Fragment 中的代码
public class NewsFragment extends Fragment {

private ListView listView;@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {    View view = inflater.inflate(R.layout.fragment_layout,container,false);    //找到id    listView = view.findViewById(R.id.frament_list_view);    return view;}@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {    super.onActivityCreated(savedInstanceState);    //获取数据    String name =  getArguments().getString("name", "");    //判断    if (name.equals("头条")){        name = "top";    }else if (name.equals("军事")){        name = "junshi";    }else if (name.equals("社会")){        name = "shehui";    }else if (name.equals("财经")){        name = "caijing";    }else if (name.equals("国内")){        name = "guonei";    }    getDataFromNet(name);}private void getDataFromNet(final String name) {    AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {        @Override        protected String doInBackground(Void... voids) {            try {                URL url = new URL("http://v.juhe.cn/toutiao/index?type="+name+"&key=597b4f9dcb50e051fd725a9ec54d6653");                HttpURLConnection connection = (HttpURLConnection) url.openConnection();                connection.setRequestMethod("GET");                connection.setReadTimeout(5000);                connection.setConnectTimeout(5000);                //获取                int responseCode = connection.getResponseCode();                if (responseCode == 200){                    InputStream inputStream = connection.getInputStream();                    String json = streamToString(inputStream,"utf-8");                    //打印字符串                    Log.i("---",json);                    return json;                }            } catch (Exception e) {                e.printStackTrace();            }            return null;        }        @Override        protected void onPostExecute(String s) {            Gson gson = new Gson();            DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);            MyAdapter myAdapter = new MyAdapter(getActivity(), dataDataBean.getResult().getData());            listView.setAdapter(myAdapter);        }    };    asyncTask.execute();}private String streamToString(InputStream inputStream,String charset) {    try {        InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);        String s = null;        StringBuilder builder = new StringBuilder();        while ((s = bufferedReader.readLine()) != null){            builder.append(s);        }        bufferedReader.close();        return builder.toString();    } catch (Exception e) {        e.printStackTrace();    }    return  null;}

}

阅读全文
0 0