ArrayAdapter java.lang.NullPointerException

ArrayAdapter java.lang.NullPointerException,java,android,Java,Android,我有此代码,但应用程序在线路上崩溃setadapter。 我真的不明白,因为我用新的arrayadapter设置了ADStater 我试过其他方法,但没有人奏效 顺便说一下,这段代码是一个片段,而不是一个活动 你知道会发生什么吗 public class Fragment_product_list extends Fragment{ @Override public void onCreate(Bundle savedInstanceState) { super

我有此代码,但应用程序在线路上崩溃
setadapter
。 我真的不明白,因为我用新的arrayadapter设置了ADStater

我试过其他方法,但没有人奏效

顺便说一下,这段代码是一个片段,而不是一个活动

你知道会发生什么吗

public class Fragment_product_list extends Fragment{

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

        final ListView listview = (ListView) getActivity().findViewById(R.id.list_product);
        String[] values = new String[] { "item1" , "item2" , "item3" , "item4" , "item5" , "item6" , "item7" };

        final ArrayList<String> list = new ArrayList<String>();
        for (int i = 0; i < values.length; ++i) {
            list.add(values[i]);
        }
        final ArrayAdapter adapter = new ArrayAdapter(getActivity(), android.R.layout.list_content , list);

        listview.setAdapter(adapter); /*app crash here*/
        }

        private class StableArrayAdapter extends ArrayAdapter<String> {

        HashMap<String, Integer> mIdMap = new HashMap<String, Integer>();

        public StableArrayAdapter(Context context, int textViewResourceId,
                              List<String> objects) {
        super(context, textViewResourceId, objects);
        for (int i = 0; i < objects.size(); ++i) {
            mIdMap.put(objects.get(i), i);
        }
    }

    @Override
    public long getItemId(int position) {
        String item = getItem(position);
        return mIdMap.get(item);
    }

    @Override
    public boolean hasStableIds() {
        return true;
    }
  }
}
公共类片段\产品\列表扩展片段{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
最终ListView ListView=(ListView)getActivity().findViewById(R.id.list_产品);
字符串[]值=新字符串[]{“item1”、“item2”、“item3”、“item4”、“item5”、“item6”、“item7”};
最终ArrayList=新ArrayList();
对于(int i=0;i

谢谢

片段视图膨胀发生在
onCreateView


我建议您查看此片段,并阅读更多有关其生命周期的信息。

如果您没有得到NickF的答案,以下是解决方案: 重写片段中的onCreateView方法,并执行以下操作

public class Fragment_product_list extends Fragment{
      @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
               View rootView = inflater.inflate(R.layout.your_layout, container,
                false);
               ListView listView = (ListView) rootView.findViewById(R.id.list_product);

               //Rest of the code
        }
}

检查
listview
是否不是
null
。该listview是否在活动中?哼。。我不明白,我在这里设置了listview
final listview listview=(listview)getActivity().findViewById(R.id.list\u产品)因此listview不为null。。(对不起,我是android新手)@taspai
findViewById
可以返回
null
@ZouZou好的,我刚刚检查了这个,listview为null。。我真的不明白!