导航传值到Fragment(基本应用)

来源:互联网 发布:java notifyall 编辑:程序博客网 时间:2024/06/16 15:09

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;    }}



阅读全文
0 0
原创粉丝点击