Странная проблема с Wi-Fi - PullRequest
0 голосов
/ 04 мая 2020

Так что мое приложение работает нормально, используя API 26

Api 28

Но когда я использую эмулятор API 29, я получаю это.

Api 29

Должен ли я проверить настройки эмулятора? Inte rnet работает нормально.

Вы можете скачать приложение, если хотите, из магазина игр , чтобы проверить его самостоятельно

Для загрузки данных я использую загрузчики. Если идентификатор загрузчика нулевой, я вызываю метод showError.

public class NewsFragment extends Fragment implements LoaderManager.LoaderCallbacks<Object>, NewsAdapter.ListItemClickListener{

    private Boolean isVisible;
    private static final String LOG_TAG = NewsFragment.class.getName();
    private static final int NEWS_LOADER_ID = 0;
    private String newsUrl;

    @BindView(R.id.news_recycler_view)
    RecyclerView mRecyclerView;

    private NewsAdapter adapter;

    @BindView(R.id.errorTextView)
    TextView errorTextView;

    private static final String ARRAY_LIST = "list_view";
    private ArrayList<News> newsArrayList;
    private static final String LAYOUT_STATE = "USATodayFragment.recycler.layout";


    private String newsTitlesToJson;

    Unbinder unbinder;

    public static NewsFragment newInstance(String newsUrl){
        Bundle bundle = new Bundle();
        bundle.putString("url", newsUrl);

        NewsFragment fragment = new NewsFragment();
        fragment.setArguments(bundle);

        return fragment;
    }

    private void readBundle(Bundle bundle) {
        if (bundle != null) {
            newsUrl = bundle.getString("url");
        }
    }


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

        unbinder = ButterKnife.bind(this, v);

        if(savedInstanceState == null) {
            newsArrayList = new ArrayList<>();


            readBundle(getArguments());

            LinearLayoutManager manager = new LinearLayoutManager(getActivity());
            mRecyclerView.setLayoutManager(manager);
            mRecyclerView.setHasFixedSize(true);
            mRecyclerView.addItemDecoration(new SimpleDividerItemDecoration(getActivity()));

            adapter = new NewsAdapter(getActivity(),newsArrayList,this);
            mRecyclerView.setAdapter(adapter);

            getLoaderManager().initLoader(NEWS_LOADER_ID, null, this);

            //UpdateNewsWidgetService.startBakingService(getContext(), (ArrayList<News>) newsArrayList);

        }else{
            newsArrayList = savedInstanceState.getParcelableArrayList(ARRAY_LIST);

            readBundle(getArguments());


            errorTextView = v.findViewById(R.id.errorTextView);
            mRecyclerView = v.findViewById(R.id.news_recycler_view);
            LinearLayoutManager manager = new LinearLayoutManager(getActivity());
            mRecyclerView.setLayoutManager(manager);
            mRecyclerView.setHasFixedSize(true);
            mRecyclerView.addItemDecoration(new SimpleDividerItemDecoration(getActivity()));
            adapter = new NewsAdapter(getActivity(),newsArrayList,this);
            mRecyclerView.setAdapter(adapter);




            //UpdateNewsWidgetService.startBakingService(getContext(), (ArrayList<News>) newsArrayList);


        }

        return v;
    }

    @Override
    public Loader onCreateLoader(int id, Bundle args) {

        return new GenericLoader(getActivity(),newsUrl);


    }


    @Override
    public void onLoaderReset(Loader<Object> loader) {

    }

    @Override
    public void onLoadFinished(Loader<Object> loader, Object data) {
        int id = loader.getId();

        if(id == NEWS_LOADER_ID){
            newsArrayList = (ArrayList<News>)data;

            if(newsArrayList !=null && !newsArrayList.isEmpty()){
                adapter.clear();
                adapter.setNewsData(newsArrayList);

            }else{
                showError();
            }
        }
    } ...
    private void showError(){
    mRecyclerView.setVisibility(View.GONE);
    errorTextView.setVisibility(View.VISIBLE);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...