空指针异常
这里是我的努力在Fragment
显示一个列表,其中截至目前不断上报NullPointerException
每当它试图初始化ListView
代码:异常" title="空指针异常">空指针异常
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
}
回答:
,因为要扩展ListFragment
你应该使用getListView()
代替findViewById
和setListAdapter
应该叫后onCreateView
(内onActivityCreated
,例如)
回答:
这是另一种方式去了解这一点,虽然我只延长片段
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle SavedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_item, container, false);
ListView itemList = (ListView)rootView.findViewById(R.id.itemListView);
String[] items = {"Alpha", "Orange", "Pineapple", "Venus", "Echo", "Pent", "Mouse",
"Phoenix", "Dent", "Sloppy"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(rootView.getContext(),
R.layout.text_row, items);
itemList.setAdapter(new ArrayAdapter<>(rootView.getContext(),
R.layout.fragment_item, items));
itemList.setAdapter(adapter);
return (rootView);
}
以上是 空指针异常 的全部内容, 来源链接: utcz.com/qa/267343.html