使用MVP@post拼接参数请求数据
来源:互联网 发布:中国户外刀代工知乎 编辑:程序博客网 时间:2024/06/04 18:19
public class Api {// http://api.tianapi.com/nba/?key=71e58b5b2f930eaf1f937407acde08fe&num=10 public static final String UYT="http://api.tianapi.com/"; public static final String key="71e58b5b2f930eaf1f937407acde08fe";}
public interface ApiService { @POST Observable<News> getDatas(@Url String url, @QueryMap Map<String, String> map);}public interface Imodel { void RequestSuccess(String url,String key,int num,Onselect onselect);}
public interface Onselect { void dataSuccess(List<News.NewslistBean> list); void dataError(String s);}public class model implements Imodel{@Override public void RequestSuccess(String url, String key, int num, final Onselect onselect) { Map<String, String> map = new HashMap<>(); map.put("key",key); map.put("num",num+""); Retrofit retrofit = new Retrofit.Builder() .baseUrl(url) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); ApiService apiService = retrofit.create(ApiService.class); Observable<News> datas = apiService.getDatas("nba/", map); datas.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<News>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(News news) { List<News.NewslistBean> newslist = news.getNewslist(); onselect.dataSuccess(newslist); } }); }}public class presenter { Imodel imodel; Iview iview; public presenter(Iview iview) { this.iview = iview; imodel = new model(); } public void getOk(String url, String key, int num) { imodel.RequestSuccess(url, key, num, new Onselect() { @Override public void dataSuccess(List<News.NewslistBean> list) { iview.showSuccess(list); } @Override public void dataError(String s) { } }); }}
public interface Iview { void showSuccess(List<News.NewslistBean> list); void showError(String s);}
public class BaseApplication extends Application { @Override public void onCreate() { super.onCreate(); Fresco.initialize(this); }}public class MyAdpater extends RecyclerView.Adapter { List<News.NewslistBean> list; Context context; public MyAdpater(List<News.NewslistBean> list, Context context) { this.list = list; this.context = context; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); return new MyViewHolder(inflate); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { MyViewHolder myViewHolder = (MyViewHolder) holder; myViewHolder.textView.setText(list.get(position).getTitle()); Uri imgUrl = Uri.parse(list.get(position).getPicUrl());// SimpleDraweeView urlImg = (SimpleDraweeView) findViewById(R.id.sdv_image_url); myViewHolder.simpleDraweeView.setImageURI(imgUrl); } @Override public int getItemCount() { return list.size(); } class MyViewHolder extends RecyclerView.ViewHolder { private final TextView textView; private final SimpleDraweeView simpleDraweeView; public MyViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.text); simpleDraweeView = itemView.findViewById(R.id.sdv_image); } }}public class MainActivity extends AppCompatActivity implements Iview{ private RecyclerView recyclerView; private LinearLayoutManager linearLayoutManager; private text.bwei.com.wuzijing1205.presenter.presenter presenter; int num=10; private MyAdpater myAdpater; private SwipeRefreshLayout swipeRefreshLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = (RecyclerView) findViewById(R.id.recycler); swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swip); presenter = new presenter(this); presenter.getOk(Api.UYT,Api.key,num); } @Override public void showSuccess(final List<News.NewslistBean> list) { linearLayoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(linearLayoutManager); myAdpater = new MyAdpater(list, this); recyclerView.setAdapter(myAdpater); swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { presenter.getOk(Api.UYT,Api.key,num++); myAdpater.notifyDataSetChanged(); swipeRefreshLayout.setRefreshing(false); } }); recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); int lastVisibleItemPosition = linearLayoutManager.findLastVisibleItemPosition(); if (lastVisibleItemPosition == list.size() - 1) { presenter.getOk(Api.UYT,Api.key,num++); myAdpater.notifyDataSetChanged(); } } }); } @Override public void showError(String s) { }}
阅读全文
0 0
- 使用MVP@post拼接参数请求数据
- FireFox插件RESTClient 如何使用POST,请求json数据参数。
- 拼接GET和POST请求参数的方法
- Post请求拼接参数的一大难点
- MVP post请求
- 拼接地址的字符串(post请求),展示数据
- Post 请求参数 数据装载. 生成JSON
- HttpClient post请求拼接数字
- mvp网络请求数据
- MVP+Rxjava请求数据
- mvp请求网络数据
- OkHttp+MVP请求数据
- 使用HttpURLConnection采用Post方式请求数据
- 使用HttpURLConnection通过GET、POST请求数据
- AFNetworking3.0使用 ,Post数据请求
- 使用HttpURLConnection采用Post方式请求数据
- layer使用post发送请求加载数据
- 使用fiddler更改post请求数据,具现post错误
- JAVA学习笔记——Collection工具类Collections
- 程序员薪酬到底有多高?来看硅谷的工程师统计
- 优秀的人大多不合群
- URAL
- 利用SharedPreferences实现记住密码和自动登录
- 使用MVP@post拼接参数请求数据
- 模型制作规范
- 调试经验 | Visual Studio中代码正常运行,但运行生成的exe报错“0xc000007b无法正常启动”
- EJB到底是什么?
- ActiveMQ之环境搭建
- javascript中的深拷贝和浅拷贝
- ASP设置动态表头
- 如何修改input type="file"样式
- odoo8 TreeView视图创建按钮旁添加按钮