使用Fragment A的父级活动从Fragment A发起第二个活动

时间:2016-06-18 11:48:06

标签: android listview android-fragments

我站在一个有趣的问题面前。有没有办法(图书馆,代码,一些黑客)来解决我的问题?情况是这样的:

我们有活动A及其listViewFragment A. 当我点击该listView的项目时,我需要启动Activity B.我这样做是通过调用:

getActivity().startActivity(intent);

但是这可能会导致内存泄漏,或者有时getActivity()会返回null,因为片段没有附加到它的活动中。

我想要制作一些界面并从那里调用它,但我真的不知道如何实现这个想法。

1 个答案:

答案 0 :(得分:0)

事实证明,它只是通过从该片段内部调用startActivity而不调用父活动来工作。 这是我的解决方案:

@Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        mAdapter = new MyAdapter(getActivity());
        ListView listView = (ListView) view.findViewById(R.id.list1);
        listView.setAdapter(mAdapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Img records = mAdapter.getItem(position);
                Intent intent = new Intent(getActivity(), OrderActivity.class);
                intent.putExtra("Name", records.getName());
                intent.putExtra("Phone", records.getPhone());
                intent.putExtra("ID", records.getId());
                startActivity(intent);
            }
        });
    }

之前,我从listView的内部适配器调用它,所以我不得不使用getActivity。现在我没有。