gpt4 book ai didi

java - fragment 中的空指针异常(初始化 ListView )

转载 作者:行者123 更新时间:2023-12-01 07:28:30 25 4
gpt4 key购买 nike

这是我尝试在 Fragment 中显示列表的代码,截至目前一直报告 NullPointerException每当它尝试初始化 ListView :

public class PortfolioFragment extends ListFragment {

ListView l;
ArrayAdapter<String> adapter;
List<String> list;

public PortfolioFragment() {
// Required empty public constructor
}

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
list = MainActivity.globalArrayTest;
l = (ListView) getView().findViewById(android.R.id.list);
adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, list);
l.setAdapter(adapter);

return inflater.inflate(R.layout.fragment_portfolio, container, false);

}

我在这一行收到错误:

l = (ListView) getView().findViewById(android.R.id.list);

最佳答案

更改为

View v = inflater.inflate(R.layout.fragment_portfolio, container, false);
l = (ListView) v.findViewById(android.R.id.list);
return v;

您应该在 xml 中包含以下内容

<ListView android:id="@android:id/list"

或者重写onActivityCreated并使用getListView()

您也可以使用下面的内容,因为黑带评论说这比上面的更好。

@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
l = getListView(); // since you extend ListFragment
}

关于java - fragment 中的空指针异常(初始化 ListView ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20636811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com