Как решить эту ошибку исключения Null в этом коде? - PullRequest
0 голосов
/ 23 октября 2019
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        listView=container.findViewById(R.id.listview);
       // View view= inflater.inflate(R.layout.fragment_home_page, container, false);
        View v = getActivity().getLayoutInflater().inflate(R.layout.fragment_home_page,null);
        final HomePageListAdapter homePageListAdapter=new HomePageListAdapter(container.getContext(),productName,sku,type,profile,getLayoutInflater());
        listView.setAdapter(homePageListAdapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
               Toast.makeText(getContext(),productName[position],Toast.LENGTH_SHORT).show();
            }
        });

        return v;
    }

java.lang.NullPointerException: попытка вызвать виртуальный метод 'void android.widget.ListView.setOnItemClickListener (android.widget.AdapterView $ OnItemClickListener)' для пустой ссылки на объект в com.example.webcta.ui.home.HomePage.HomePageFragment.onCreateView (HomePageFragment.java:42)

Ответы [ 2 ]

2 голосов
/ 23 октября 2019

Первый просмотр с раздувом, затем инициализация

попробуйте этот код:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment

       // View view= inflater.inflate(R.layout.fragment_home_page, container, false);
        View v = getActivity().getLayoutInflater().inflate(R.layout.fragment_home_page,null);
       listView=v.findViewById(R.id.listview);
        final HomePageListAdapter homePageListAdapter=new HomePageListAdapter(container.getContext(),productName,sku,type,profile,getLayoutInflater());
        listView.setAdapter(homePageListAdapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
               Toast.makeText(getContext(),productName[position],Toast.LENGTH_SHORT).show();
            }
        });

        return v;
    }
0 голосов
/ 23 октября 2019

Попробуйте этот код

View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    view = inflater.inflate(R.layout.fragment_home_page, container, false);
    listView = view.findViewById(R.id.listview);    
    final HomePageListAdapter homePageListAdapter=new HomePageListAdapter(container.getContext(),productName,sku,type,profile,getLayoutInflater());
    listView.setAdapter(homePageListAdapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(getContext(),productName[position],Toast.LENGTH_SHORT).show();
        }
    });
    return view;
}

Надеюсь, это поможет вам

...