fragment静态传值

来源:互联网 发布:网龙网络校招 编辑:程序博客网 时间:2024/05/27 14:12

public class Fragment1 extends Fragment{    private ListView listView;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        View view=inflater.inflate(R.layout.fragment1,null);        listView = (ListView) view.findViewById(R.id.listview);        return view;    }    @Override    public void onActivityCreated(Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        final ArrayList<String> list=new ArrayList<>();        list.clear();        for (int i=0;i<20;i++){            list.add("条目"+i);        }        listView.setAdapter(new ArrayAdapter<String>(getActivity(),android.R.layout.simple_expandable_list_item_1,list));        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                //点击传值                listener.onFragmentClick(list.get(position));            }        });    }    //接口    private OnFragmentClickListener listener;    public interface OnFragmentClickListener {        void onFragmentClick(String item);    }    public void setOnFragmentClickListener(OnFragmentClickListener listener){        this.listener=listener;    }
}


public class Fragment2 extends Fragment{    private TextView textView;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        View view=inflater.inflate(R.layout.fragment2,null);        textView = (TextView) view.findViewById(R.id.text);        return view;    }    @Override    public void onActivityCreated(Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        FragmentManager fragmentManager = getActivity().getFragmentManager();        Fragment1 fragment1= (Fragment1) fragmentManager.findFragmentById(R.id.fragment1);        //fragment监听        fragment1.setOnFragmentClickListener(new Fragment1.OnFragmentClickListener() {            @Override            public void onFragmentClick(String item) {                textView.setText(item);            }        });    }}





0 0