我站在一个有趣的问题面前。有没有办法(图书馆,代码,一些黑客)来解决我的问题?情况是这样的:
我们有活动A及其listViewFragment A. 当我点击该listView的项目时,我需要启动Activity B.我这样做是通过调用:
getActivity().startActivity(intent);
但是这可能会导致内存泄漏,或者有时getActivity()会返回null,因为片段没有附加到它的活动中。
我想要制作一些界面并从那里调用它,但我真的不知道如何实现这个想法。
答案 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。现在我没有。