1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/bvin_admin-BasicSupportLayer

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать

A permissive license whose main conditions require preservation of copyright and license notices. Contributors provide an express grant of patent rights. Licensed works, modifications, and larger works may be distributed under different terms and without source code.

Permissions
  • Commercial use
  • Modification
  • Distribution
  • Patent use
  • Private use
Limitations
  • Trademark use
  • Liability
  • Warranty
Conditions
  • License and copyright notice
  • State changes
README.md 6.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 15.03.2025 10:58 0f31540

ОсновнойСлойПоддержки

Этот фреймворк поддержки предназначен для всех проектов Android и предоставляет некоторые базовые и удобные услуги.

Использование RequestActivity:

  1. Для запроса можно использовать GsonRequest. Если требуется создать свой запрос, вам потребуется самостоятельно распарсить возвращаемые сервером данные в соответствующий модельный класс, а затем установить Responces.Listener и ErrorListener как this. Если используется RequestFragment, то эти слушатели должны быть установлены как getRequestActivity(), так как RequestFragment также использует RequestActivity для выполнения запросов.
  2. Важно присвоить значение mRequestHolderFragment в RequestActivity для автоматического управления отображением загрузки, ошибок и других состояний. mRequestHolderFragment может использоваться как независимый внешний класс для повторного использования, и этот mRequestHolderFragment находится вместе с RequestFragment внутри RequestActivity.
  3. Методы onRequestStart и onRequestFailure уже реализованы в родительском классе RequestActivity, поэтому нет необходимости выполнять дополнительные действия. Вам следует обрабатывать данные только в методе onRequestSuccess.
public class TestRequestActivity extends RequestActivity<TestRequestActivity.TestModel> {
    String url;
    Map<String, Object> params;

    @Override
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        parserIntent();
        initData();
        initViews();
        startRequest();
    }
}
```    @Override
    public void parserIntent() {
        super.parserIntent();
        url = getIntent().getStringExtra("/... ");
        params.put(key, value);
    }

    @Override
    public void initData() {
        super.initData();
    }

    @Override
    public void initViews() {
        super.initViews();
        // Fragment for displaying loading
        mRequestHolderFragment = new AbstractRPFragment() {
            @Override
            public void initViews(View rootView) {
                mLoadingFrame = rootView.findViewById(id);
                mEmptyFrame = rootView.findViewById(id);
                mErrorFrame = rootView.findViewById(id);
                tvEmptyTips = rootView.findViewById(id);
                tvErrorSceneTips = rootView.findViewById(id);
                tvLoadTip = rootView.findViewById(id);
            }

            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                View v = inflater.inflate(R.layout.activity_list_item, container);
                initViews(v);
                return v;
            }
        };
    }```java
    @Override
    public void onRequestStart(Request<TestModel> request) {
        super.onRequestStart(request);
    }
}

```java
public void onRequestSuccess(TestModel result) {
    super.onRequestSuccess(result);
}

@Override
public void onRequestFailure(VolleyError error) {
    super.onRequestFailure(error);
}

private void startRequest() {
    GsonRequest<TestModel> request = new GsonRequest<>(url, params, TestModel.class, this, this);
    addRequest(request);
}

###Стандартный пример RequestHolderFragment

/**
 *
 * @ClassName: RequestHolderFragment
 * @Description: Наследует от `AbstractRPFragment`, требуется реализовать методы `initViews()` и `onCreateView()`,
 * а также загрузить макет и привязать компоненты в подклассах
 * @author: Bvin
 * @date: 2 февраля 2015 г., 10:53:53
 */
public class RequestHolderFragment extends AbstractRPFragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.univ_request_place_holder, container, false);
        initViews(rootView);
        return rootView;
    }

    @Override
    public void initViews(View rootView) {
        mLoadingFrame = rootView.findViewById(R.id.loading_frame);
        mEmptyFrame = rootView.findViewById(R.id.empty_frame);
        mErrorFrame = rootView.findViewById(R.id.error_frame);

        // Ошибка — это вид, который можно нажать для повторной отправки запроса
        mErrorFrame.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                getRequestActivity().reloadRequest();
            }
        });

        tvLoadTip = (TextView) mLoadingFrame.findViewById(R.id.tvLoadTip);
        tvEmptyTips = (TextView) mEmptyFrame.findViewById(R.id.tvEmptyTips);
        tvErrorSceneTips = (TextView) mErrorFrame.findViewById(R.id.tvErrorSceneTips);

        defaultLoadTips = ResourceFinder.findString(getActivity(), R.string.loading_tips);
        defaultEmptyTips = ResourceFinder.findString(getActivity(), R.string.empty_tips);
        defaultSceneError = ResourceFinder.findString(getActivity(), R.string.error_scene_tips);
    }
}
``````java
defaultErrorSolution = ResourceFinder.findString(getActivity(), R.string.error_solution_click_retry);
}

Лicensia

Copyright 2014-2015 Bvin
Лицензировано по лицензии Apache License, Версия 2.0 («Лицензия»); 
вы можете использовать этот файл только в соответствии с Лицензией.
Вы можете получить копию Лицензии по адресу
http://www.apache.org/licenses/LICENSE-2.0

Без ограничений, возложенных применимым законом или письменно согласованного, программное обеспечение, распространяемое в рамках Лицензии, предоставляется «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ ВОЗМОЖНОГО РОДА, как явленных, так и подразумеваемых. Увидеть Лицензию для конкретного языка, регулирующего права и ограничения в рамках Лицензии.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/bvin_admin-BasicSupportLayer.git
git@api.gitlife.ru:oschina-mirror/bvin_admin-BasicSupportLayer.git
oschina-mirror
bvin_admin-BasicSupportLayer
bvin_admin-BasicSupportLayer
master