{"id":17688211,"url":"https://github.com/ccapton/android-mvp","last_synced_at":"2025-03-30T21:27:59.864Z","repository":{"id":176302365,"uuid":"129360818","full_name":"Ccapton/Android-mvp","owner":"Ccapton","description":"这是一个简单的android-mvp框架的封装","archived":false,"fork":false,"pushed_at":"2018-04-13T07:17:34.000Z","size":5,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-06T01:41:22.731Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ccapton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-13T06:48:15.000Z","updated_at":"2018-04-17T06:15:26.000Z","dependencies_parsed_at":"2023-06-29T21:31:32.317Z","dependency_job_id":null,"html_url":"https://github.com/Ccapton/Android-mvp","commit_stats":null,"previous_names":["ccapton/android-mvp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ccapton%2FAndroid-mvp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ccapton%2FAndroid-mvp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ccapton%2FAndroid-mvp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ccapton%2FAndroid-mvp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ccapton","download_url":"https://codeload.github.com/Ccapton/Android-mvp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246382601,"owners_count":20768236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-24T11:43:47.516Z","updated_at":"2025-03-30T21:27:59.844Z","avatar_url":"https://github.com/Ccapton.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Android-mvp \n\n这是一个简单的android-mvp框架的封装\n\n### 1、构建具体的Presenter,Model子类，例如：\n```\n// DynamicModel.java Model子类 ，你需要在getData方法内编写你的网络请求代码\npublic class DynamicModel extends Model {\n \n    public DynamicModel(Presenter presenter) {\n        super(presenter);\n    }\n\n    @Override\n    public void getData(Context context, Map\u003cString, Object\u003e paramMap,  String tag) {\n         /* 这里执行网络请求代码:\n         成功请求后回调 dataGot(String rawData,String tag);\n         请求失败后回调 dataGoterror(String error,String tag);\n        */\n\n    }\n\n}\n\n// DynamicPresenter.java Presenter子类，你需要实现getModel()方法（传入一个Model子类对象即可）\npublic class DynamicPresenter  extends Presenter \u003cDynamicModel\u003e{\n\n    public DynamicPresenter(View view) {\n        super(view);\n    }\n\n    @Override\n    public DynamicModel getModel() {\n        return new DynamicModel(this);\n    }\n\n}\n```\n\n### 2、初始化你的Presenter具体实现类对象，并在需要数据的时候调用\n其getData(Context context,Map\u003cString, Object\u003e paramMap,String tag)方法\n\n#### In Activity or Fragment\n```\npublic class MainActivity extends AppCompatActivity implements com.capton.test.mvp.View{\n    DynamicPresenter dynamicPresenter;\n    EditText urlEt;\n    Button getDataBtn;\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n\n        dynamicPresenter = new DynamicPresenter(this);\n \n        urlEt = findViewById(R.id.url);\n        getDataBtn = findViewById(R.id.getData);\n\n        getDataBtn.setOnClickListener(new View.OnClickListener() {\n            @Override\n            public void onClick(View v) { \n                getData();\n            }\n        });\n        \n    }\n       // other code\n\n     // 开始数据请求\n    public void getData() {\n    \t// paramsMap参数map，传入必要的url，post方法，headers参数，\n    \t在Model的子类实现方法getData(...)内获取对应的参数。\n        Map\u003cString,Object\u003e paramsMap = new HashMap\u003c\u003e();\n        paramsMap.put(\"url\",urlEt.getText().toString());\n\n        // \"Dynamic\" 为每一个请求的标签\n        dynamicPresenter.getData(this,paramsMap,\"Dynamic\");\n\n    }\n\n     // 数据请求成功的回调函数\n    @Override\n    public void dataGot(String rawData,String tag) {\n        if (\"Dynamic\".equals(tag))\n          resultTv.setText(rawData);\n    }\n\n     // 数据请求失败的回调函数\n    @Override\n    public void dataGoterror(String error,String tag) {\n        if (\"Dynamic\".equals(tag)) {\n            System.out.println(\"MainActivity.dataGoterror \");\n            resultTv.setText(error);\n        }\n    }\n\n}\n    \n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccapton%2Fandroid-mvp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fccapton%2Fandroid-mvp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccapton%2Fandroid-mvp/lists"}