Я получаю данные с 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)