получение данных в счетчике от дооснащения - происходит сбой приложения при нажатии на элемент - PullRequest
0 голосов
/ 17 сентября 2018

Я получаю данные с URL-адреса с помощью Retrofit в Android. Ответ успешно получает данные, но когда я нажимаю на элемент в блесне, приложение вылетает.

Вот мой код:

public class Home extends Fragment {

    private Button adv_search;

    int PLACE_PICKER_REQUEST = 1;
    ArrayList<String> items = new ArrayList<>();



    private View mMainView;
    private TextView category_text , view_all_featuredItems , view_all_top_categories , view_latest_provider ;
    private EditText location_text;
    private ImageView location_image_view;
    private RecyclerView latest_provider_recyclerview;
    List<LatestProvider> latestProvider;
    List<featuredListingModel> featured_items;
    private Button search_now;
    private RecyclerView mViewPager;
    private Spinner spinner1, spinner2;
    final categoryController.Infos servicecategory = categoryController.getRetrofitInstance().create(categoryController.Infos.class);
    public Home() {

    }
    @Override
    public View onCreateView(final LayoutInflater inflater, ViewGroup container,
                             final Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        mMainView = inflater.inflate(R.layout.fragment_home, container, false);

        adv_search = mMainView.findViewById(R.id.advance_search);
        adv_search.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent move_adv_search = new Intent(getActivity() , Advance_Search.class);
                startActivity(move_adv_search);
            }
        });
//        latest_provider_card = mMainView.findViewById(R.id.latest_provider);
//        latest_provider_card.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                Intent move_adv_search = new Intent(getActivity() , Search_Result.class);
//                startActivity(move_adv_search);
//            }
//        });

//        category_linear = mMainView.findViewById(R.id.ui_linear_category);
//        category_linear.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                Intent move_adv_search = new Intent(getActivity() , Category.class);
//                startActivity(move_adv_search);
//            }
//        });

        view_all_featuredItems = mMainView.findViewById(R.id.ui_view_all_featured_listing_items);
        view_all_featuredItems.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent move_view_all_featured = new Intent(getActivity()  , featured_listing.class);
                startActivity(move_view_all_featured);
            }
        });

        view_all_top_categories = mMainView.findViewById(R.id.ui_all_top_categories);
        view_all_top_categories.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent move_view_all_top_categories = new Intent(getActivity()  , Top_category.class);
                startActivity(move_view_all_top_categories);
            }
        });

        search_now = mMainView.findViewById(R.id.ui_searchNow);
        search_now.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent move = new Intent(getActivity() , Search_Result.class);
                startActivity(move);
            }
        });

        spinner1 = mMainView.findViewById(R.id.ui_category_spinner);
        spinner2 = mMainView.findViewById(R.id.ui_subcategory_spinner);

        view_latest_provider = mMainView.findViewById(R.id.ui_view_latest_provider);
        view_latest_provider.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent move_latest_provider = new Intent(getActivity() , Latest_Provider.class);
                startActivity(move_latest_provider);
            }
        });

        location_text = mMainView.findViewById(R.id.ui_get_location_text);
//        location_text.setOnPlaceSelectedListner(new PlaceSelectionListener() {
//
//            @Override
//            public void onPlaceSelected(Place place) {
//                 String placeName = place.getName().toString();
//                Toast.makeText(getActivity() , ""+placeName , Toast.LENGTH_SHORT).show();
//            }
//
//            @Override
//            public void onError(Status status) {
//
//            }
//        });

        mViewPager = mMainView.findViewById(R.id.featured_view_pager);
        StaggeredGridLayoutManager mStaggeredGridLayout = new StaggeredGridLayoutManager(1 , StaggeredGridLayoutManager.HORIZONTAL);
        mViewPager.setLayoutManager(mStaggeredGridLayout);




        location_image_view = mMainView.findViewById(R.id.ui_location_image);
        location_image_view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
                Intent intent;
                try {
                    intent = builder.build(getActivity());
                    startActivityForResult(intent , PLACE_PICKER_REQUEST);
                } catch (GooglePlayServicesRepairableException e) {
                    e.printStackTrace();
                } catch (GooglePlayServicesNotAvailableException e) {
                    e.printStackTrace();
                }

            }
        });
//        category_text = mMainView.findViewById(R.id.category_textview);
//        Bundle bundle =getActivity().getIntent().getExtras();
//        if (bundle != null){
//            category_text.setText(bundle.getString("CategoryName"));
//        }
        latest_provider_recyclerview = mMainView.findViewById(R.id.latest_provider_recyclerview);
        StaggeredGridLayoutManager mStaggeredGridLayoutManager = new StaggeredGridLayoutManager(1 , StaggeredGridLayoutManager.HORIZONTAL);
        latest_provider_recyclerview.setLayoutManager(mStaggeredGridLayoutManager);

        getLatestProvider();
        getfeaturedviewpager();
        getCategories();
        return mMainView;
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data){


        if (requestCode == PLACE_PICKER_REQUEST){
            if (resultCode == getActivity().RESULT_OK){
                Place place = PlacePicker.getPlace(getActivity(),data);
                location_text.setText(place.getAddress());

            }
        }
    }

    @Nullable
    public void getCategories(){
        final ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, android.R.id.text1);
        servicecategory.getvategories().enqueue(new Callback<List<Example>>() {
            @Override
            public void onResponse(Call<List<Example>> call, final Response<List<Example>> response) {

                try{
                    final List<Example> catagories =response.body();
                   // Log.e("hii"," "+response.body());
                    for(int i=0;i<catagories.size();i++){
                        spinnerAdapter.setDropDownViewResource(R.layout.items_view);
                        spinner1.setAdapter(spinnerAdapter);
                        spinnerAdapter.add(catagories.get(i).getTitle());
                        spinnerAdapter.notifyDataSetChanged();
                    }
                    spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                        @Override
                        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                            String selectedcategory = parent.getItemAtPosition(position).toString();
                            ArrayAdapter<String> spinnerAdapter1 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, android.R.id.text1);

                            for(int i=0;i<catagories.size();i++){

                                if(catagories.get(i).getTitle().equals(new String (selectedcategory))){
                                    spinnerAdapter1.setDropDownViewResource(R.layout.items_view);
                                    spinner2.setAdapter(spinnerAdapter1);
                                    for(int j=0;j<catagories.get(i).getSpecialities().size();j++){
                                        spinnerAdapter1.add(catagories.get(i).getSpecialities().get(j).getName());
                                    }
                                    spinnerAdapter1.notifyDataSetChanged();
                                }
                            }

                        }

                        @Override
                        public void onNothingSelected(AdapterView<?> parent) {

                        }
                    });


                }catch (Exception e){
                    Toast.makeText(getActivity() , e.getMessage() , Toast.LENGTH_LONG ).show();
                }
            }
            @Override
            public void onFailure(Call<List<Example>> call, Throwable t) {

            }
        });


    }


    private void getfeaturedviewpager(){

        Call<List<featuredListingModel>> featured_listing_call = RetrofitClient.getInstance().getApi().getFeaturedListing();
        featured_listing_call.enqueue(new Callback<List<featuredListingModel>>() {
            @Override
            public void onResponse(Call<List<featuredListingModel>> call, Response<List<featuredListingModel>> response) {
                featured_items = response.body();
                featuredListingViewPagerAdapter featuredlistingviewpageradapter;
                featuredlistingviewpageradapter = new featuredListingViewPagerAdapter(featured_items, getActivity());
                mViewPager.setAdapter(featuredlistingviewpageradapter);
            }

            @Override
            public void onFailure(Call<List<featuredListingModel>> call, Throwable t) {

            }
        });

    }



    private void getLatestProvider(){

        Call<List<LatestProvider>> Latest_ProviderCall = RetrofitClient.getInstance().getApi().getLatestProvider();
        Latest_ProviderCall.enqueue(new Callback<List<LatestProvider>>() {
            @Override
            public void onResponse(Call<List<LatestProvider>> call, Response<List<LatestProvider>> response) {



                latestProvider = response.body();
                LatestProviderAdapter latestProviderAdapter = new LatestProviderAdapter(latestProvider , getActivity());
                latest_provider_recyclerview.setAdapter(latestProviderAdapter);



            }

            @Override
            public void onFailure(Call<List<LatestProvider>> call, Throwable t) {

            }
        });


    }


}

Это результат, показанный logcat:

09-18 11: 29: 57,557 2838-2838 / com.example.saadhashmi.docdirect E / RecyclerView: адаптер не подключен; пропуск макета 09-18 11: 29: 57.558 2838-2838 / com.example.saadhashmi.docdirect E / RecyclerView: адаптер не подключен; пропуск макета 09-18 11: 29: 57.789 2838-2838 / com.example.saadhashmi.docdirect E / RecyclerView: адаптер не подключен; пропуск макета 09-18 11: 29: 57.789 2838-2838 / com.example.saadhashmi.docdirect E / RecyclerView: адаптер не подключен; пропуск макета 09-18 11: 29: 58.012 2838-2838 / com.example.saadhashmi.docdirect E / RecyclerView: адаптер не подключен; пропуск макета 09-18 11: 29: 58.012 2838-2838 / com.example.saadhashmi.docdirect E / RecyclerView: адаптер не подключен; пропуск макета 09-18 11: 29: 58.064 2838-2917 / com.example.saadhashmi.docdirect E / NativeCrypto: ssl = 0x7f79627680 cert_verify_callback x509_store_ctx = 0x7f5e25faf0 arg = 0x0 09-18 11: 29: 58.066 2838-2917 / com.example.saadhashmi.docdirect E / NativeCrypto: ssl = 0x7f79627680 cert_verify_callback с вызовом verifyCertificateChain authMethod = ECDHE_RSA 09-18 11: 29: 58.081 2838-2915 / com.example.saadhashmi.docdirect E / NativeCrypto: ssl = 0x7f748b8800 cert_verify_callback x509_store_ctx = 0x7f5e364af0 arg = 0x0 09-18 11: 29: 58.082 2838-2915 / com.example.saadhashmi.docdirect E / NativeCrypto: ssl = 0x7f748b8800 вызов cert_verify_callback verifyCertificateChain authMethod = ECDHE_RSA 09-18 11: 29: 58.082 2838-2914 / com.example.saadhashmi.docdirect E / NativeCrypto: ssl = 0x7f79626c80 cert_verify_callback x509_store_ctx = 0x7f5e469af0 arg = 0x0 09-18 11: 29: 58.083 2838-2914 / com.example.saadhashmi.docdirect E / NativeCrypto: ssl = 0x7f79626c80 вызов cert_verify_callback verifyCertificateChain authMethod = ECDHE_RSA 09-18 11: 30: 03.635 2838-2838 / com.example.saadhashmi.docdirect E / AndroidRuntime: FATAL ИСКЛЮЧЕНИЕ: главная Процесс: com.example.saadhashmi.docdirect, PID: 2838 java.lang.NullPointerException: попытка вызвать виртуальный метод 'void android.widget.TextView.setText (java.lang.CharSequence) 'с нулевым значением ссылка на объект в android.widget.ArrayAdapter.createViewFromResource (ArrayAdapter.java:399) на android.widget.ArrayAdapter.getDropDownView (ArrayAdapter.java:448) в android.widget.Spinner $ DropDownAdapter.getDropDownView (Spinner.java:971) на android.widget.Spinner $ DropDownAdapter.getView (Spinner.java:967) на android.widget.Spinner.measureContentWidth (Spinner.java:841) в android.widget.Spinner $ DropdownPopup.computeContentWidth (Spinner.java:1230) на android.widget.Spinner $ DropdownPopup.show (Spinner.java:1262) на android.widget.Spinner.performClick (Spinner.java:766) в android.support.v7.widget.AppCompatSpinner.performClick (AppCompatSpinner.java:448)на android.view.View $ PerformClick.run (View.java:21539) на android.os.Handler.handleCallback (Handler.java:819) на android.os.Handler.dispatchMessage (Handler.java:104) на android.os.Looper.loop (Looper.java:210) на android.app.ActivityThread.main (ActivityThread.java:5982) на java.lang.reflect.Method.invoke (собственный метод) на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:852) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:742)

...