public interface Interface_1 { @GET("ios/cf/dish_list.php?stage_id=1&limit=20&page=1") Call<Foods> getList(); }
import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import com.example.dell_pc.day12_4zhoukao.interfacebao.Interface_1; import com.example.dell_pc.day12_4zhoukao.kind.Foods; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; public class MainActivity extends AppCompatActivity implements AdapterView.OnItemLongClickListener { //使用ButterKnife实例化各个UI控件 @BindView(R.id.listView) ListView listView; private List<Foods.DataBean> list; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); list = new ArrayList<>(); intent = new Intent(); ButterKnife.bind(this); // 使用网络请求框架Retrofit下载json字符串 new Retrofit.Builder() .baseUrl("http://www.qubaobei.com/") .addConverterFactory(GsonConverterFactory.create()) .build() .create(Interface_1.class) .getList() .enqueue(new Callback<Foods>() { @Override public void onResponse(Call<Foods> call, Response<Foods> response) { //解析字符串 Foods foods = response.body(); List<Foods.DataBean> data = foods.getData(); for (int i = 0; i < data.size() ; i++) { Foods.DataBean dataBean = data.get(i); list.add(dataBean); } MyAdapter myAdapter = new MyAdapter(MainActivity.this,list); listView.setAdapter(myAdapter); } @Override public void onFailure(Call<Foods> call, Throwable t) { } }); // 当长按列表中的一个item条目的时候启动一个新的界面,将点击的这个条目的图片的地址传递到新界面中(10分) listView.setOnItemLongClickListener(this); } @Override public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) { intent.setClass(MainActivity.this,Main2Activity.class); intent.putExtra("pic",list.get(i).getPic()); startActivity(intent); return true; } }
import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ImageView; import com.bumptech.glide.Glide; import butterknife.BindView; import butterknife.ButterKnife; import io.reactivex.Observable; import io.reactivex.ObservableEmitter; import io.reactivex.ObservableOnSubscribe; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; public class Main2Activity extends AppCompatActivity { @BindView(R.id.imageView_2) ImageView imageView2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); ButterKnife.bind(this); Intent intent = getIntent(); final String pic = intent.getStringExtra("pic"); // 在新界面中使用RxJava根据传递过来的图片地址进行下载图片并展示图片 // Glide.with(this).load(pic).into(imageView2); Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> e) throws Exception { e.onNext(pic+""); } }); Observer<String> observer = new Observer<String>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(String s) { Glide.with(Main2Activity.this).load(s).into(imageView2); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }; //上游和下游进行绑定 observable.subscribe(observer); } }
package com.example.dell_pc.day12_4zhoukao; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.example.dell_pc.day12_4zhoukao.kind.Foods; import java.util.List; import butterknife.BindView; /** * Created by dell-pc on 2017/12/4. */ public class MyAdapter extends BaseAdapter { private Context context; private List<Foods.DataBean> list; private LayoutInflater layoutInflater; public MyAdapter(Context context, List<Foods.DataBean> list) { this.context = context; this.list = list; layoutInflater = LayoutInflater.from(context); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { MyView myView; if (view == null) { myView = new MyView(); view = layoutInflater.inflate(R.layout.item_activity, null); myView.imageView_1 = view.findViewById(R.id.imageView_1); myView.textView_1 = view.findViewById(R.id.textView_1); view.setTag(myView); }else{ myView = (MyView) view.getTag(); } Foods.DataBean data = list.get(i); myView.textView_1.setText(data.getTitle()); Glide.with(context).load(data.getPic()).into(myView.imageView_1); return view; } class MyView { ImageView imageView_1; TextView textView_1; } }
Retrofit+Rxjava+Gilde
最新推荐文章于 2021-05-25 10:30:29 发布