fragment靜態傳值

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

    }
}





發佈了18 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章