Mainactivity-XML文件:
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/dl" tools:context="com.example.day21_daohangchuanzhi.MainActivity"> <FrameLayout android:id="@+id/fl" android:layout_width="wrap_content" android:layout_height="wrap_content"></FrameLayout> <ListView android:background="@color/colorAccent" android:id="@+id/lv" android:layout_width="150dp" android:layout_height="fill_parent" android:layout_gravity="start" android:choiceMode="singleChoice"></ListView> </android.support.v4.widget.DrawerLayout>
主代码:
import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private DrawerLayout dl; ArrayList<String> list = new ArrayList<>(); private ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件 dl = (DrawerLayout) findViewById(R.id.dl); lv = (ListView) findViewById(R.id.lv); //初始化数据 initData(); //点击事件 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Fragment fragment = Fragment.getInit(list.get(i));//获取导航里的Item的值 getSupportFragmentManager().beginTransaction().replace(R.id.fl,fragment).commit(); dl.closeDrawer(lv);//关闭抽屉 } }); } private void initData() { for (int i = 0; i < 10; i++) { list.add("猎场第"+i+"集"); } //适配器 Myadpater md = new Myadpater(); lv.setAdapter(md); } private class Myadpater extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (view == null) { view = View.inflate(MainActivity.this, R.layout.datatext, null); } TextView textView = view.findViewById(R.id.text); textView.setText(list.get(i)); return view; } } }Fragment代码:import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class Fragment extends android.support.v4.app.Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_fragment, null); TextView textView = view.findViewById(R.id.text2); Bundle bundle = getArguments(); String name = (String) bundle.get("name"); textView.setText(name); return view; } //静态方法,把自己返回;并且可以把传过来的参数封装到自己里面; public static Fragment getInit(String str){ Fragment fragment = new Fragment(); Bundle bundle = new Bundle(); bundle.putString("name",str); fragment.setArguments(bundle); return fragment; } }