第一个activity:
public class Main2Activity extends AppCompatActivity {
private RecyclerView recycler;
String url = "http://123.206.70.44:8080/atguigu/jsontest/test.json";
private List<Bean.HotInfoBean> list;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initView();
OkHttpManager();
}
private void initView() {
recycler = (RecyclerView) findViewById(R.id.recycler);
list = new ArrayList<Bean.HotInfoBean>();
GridLayoutManager manager = new GridLayoutManager(Main2Activity.this,2, LinearLayoutManager.VERTICAL,false);
recycler.setLayoutManager(manager);
adapter = new MyAdapter(list,Main2Activity.this);
recycler.setAdapter(adapter);
adapter.setItemOnItem(new MyAdapter.Listener() {
@Override
public void click(View v, int postion) {
String name = list.get(postion).getName();
String figure = list.get(postion).getFigure();
Intent intent = new Intent(Main2Activity.this, Main3Activity.class);
intent.putExtra("name", name);
intent.putExtra("figure", figure);
startActivity(intent);
}
});
}
public void OkHttpManager(){
OkHttpUtils okHttpUtils = new OkHttpUtils();
okHttpUtils.danAsync(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
Gson gson = new Gson();
Bean bean = gson.fromJson(string, Bean.class);
list = bean.getHot_info();
runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.but(list);
}
});
}
});
}
}
写一个工具类:
public class OkHttpUtils {
private static OkHttpUtils utils = new OkHttpUtils();
private static OkHttpClient client = new OkHttpClient();
public OkHttpUtils() {
}
private static OkHttpUtils okHttpUtils(){
return utils;
}
public void danAsync(String url, Callback callback){
Request request = new Request.Builder().url(url).build();
client.newCall(request).enqueue(callback);
}
}
写适配器:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<Bean.HotInfoBean> list;
private Context context;
private Listener listener;
public MyAdapter(List<Bean.HotInfoBean> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View inflate = View.inflate(context, R.layout.item, null);
ViewHolder holder = new ViewHolder(inflate);
return holder;
}
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
Glide.with(context).load(list.get(position).getFigure()).into(holder.imageView);
holder.textView.setText(list.get(position).getCover_price());
holder.imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.click(v, position);
}
});
}
interface Listener {
void click(View v, int postion);
}
public void setItemOnItem(Listener listener) {
this.listener = listener;
}
public void but(List<Bean.HotInfoBean> list1) {
list.clear();
list.addAll(list1);
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final ImageView imageView;
private final TextView textView;
public ViewHolder(View itemView) {
super(itemView);
imageView = (ImageView) itemView.findViewById(R.id.imageview);
textView = (TextView) itemView.findViewById(R.id.textview);
}
}
}
一个有轮播图的页面:
public class Main3Activity extends AppCompatActivity {
private Banner banner;
private TextView text;
private List<String> listimage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
initView();
}
private void initView() {
banner = (Banner) findViewById(R.id.banner);
text = (TextView) findViewById(R.id.text);
banner.setImageLoader(new GlideImage());
initDate();
banner.setImages(listimage);
banner.start();
}
private void initDate() {
String string = getIntent().getStringExtra("name").toString();
String string1 = getIntent().getStringExtra("figure").toString();
listimage = new ArrayList<String>();
for (int i = 0; i < 3; i++) {
listimage.add(string1);
}
text.setText(string);
}
}
再写一个图片加载的类:
public class GlideImage extends ImageLoader{
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
}
这里需要导一些依赖:
compile 'com.android.support:design:25.0.1'
compile 'com.github.bumptech.glide:glide:3.6.1'
compile 'com.squareup.okhttp3:okhttp:3.8.1'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.youth.banner:banner:1.4.9'
testCompile 'junit:junit:4.12'
最后不要忘记添加网络权限 还有读写的权限。
还有post请求:
//http://apis.juhe.cn/goodbook/query?key=12eacb4c434f45020d399155be7bd1c3&catalog_id=246&rn=10&rn=10
String POST_URL = "http://apis.juhe.cn/goodbook/query?";
// 请求条件:key=12eacb4c434f45020d399155be7bd1c3&catalog_id=246&rn=10&rn=10
RequestBody requestBodyPost = new FormBody.Builder()
.add("key", "12eacb4c434f45020d399155be7bd1c3")
.add("catalog_id", "246")
.add("rn", "10")
.add("rn", "10")
.build();
Request requestPost = new Request.Builder()
.url(POST_URL)
.post(requestBodyPost)
.build();
client.newCall(requestPost).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
final String string = response.body().string();
runOnUiThread(new Runnable() {
@Override
public void run() {
tvShow.setText(string);
}
});
}
});
apple 20:58:18 (多人发送)
http://blog.csdn.net/ming2316780/article/details/51598063
其实我也看不懂这个post请求 只是考试需要 以防万一 嘿嘿
public class Main2Activity extends AppCompatActivity {
private RecyclerView recycler;
String url = "http://123.206.70.44:8080/atguigu/jsontest/test.json";
private List<Bean.HotInfoBean> list;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initView();
OkHttpManager();
}
private void initView() {
recycler = (RecyclerView) findViewById(R.id.recycler);
list = new ArrayList<Bean.HotInfoBean>();
GridLayoutManager manager = new GridLayoutManager(Main2Activity.this,2, LinearLayoutManager.VERTICAL,false);
recycler.setLayoutManager(manager);
adapter = new MyAdapter(list,Main2Activity.this);
recycler.setAdapter(adapter);
adapter.setItemOnItem(new MyAdapter.Listener() {
@Override
public void click(View v, int postion) {
String name = list.get(postion).getName();
String figure = list.get(postion).getFigure();
Intent intent = new Intent(Main2Activity.this, Main3Activity.class);
intent.putExtra("name", name);
intent.putExtra("figure", figure);
startActivity(intent);
}
});
}
public void OkHttpManager(){
OkHttpUtils okHttpUtils = new OkHttpUtils();
okHttpUtils.danAsync(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
Gson gson = new Gson();
Bean bean = gson.fromJson(string, Bean.class);
list = bean.getHot_info();
runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.but(list);
}
});
}
});
}
}
写一个工具类:
public class OkHttpUtils {
private static OkHttpUtils utils = new OkHttpUtils();
private static OkHttpClient client = new OkHttpClient();
public OkHttpUtils() {
}
private static OkHttpUtils okHttpUtils(){
return utils;
}
public void danAsync(String url, Callback callback){
Request request = new Request.Builder().url(url).build();
client.newCall(request).enqueue(callback);
}
}
写适配器:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<Bean.HotInfoBean> list;
private Context context;
private Listener listener;
public MyAdapter(List<Bean.HotInfoBean> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View inflate = View.inflate(context, R.layout.item, null);
ViewHolder holder = new ViewHolder(inflate);
return holder;
}
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
Glide.with(context).load(list.get(position).getFigure()).into(holder.imageView);
holder.textView.setText(list.get(position).getCover_price());
holder.imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.click(v, position);
}
});
}
interface Listener {
void click(View v, int postion);
}
public void setItemOnItem(Listener listener) {
this.listener = listener;
}
public void but(List<Bean.HotInfoBean> list1) {
list.clear();
list.addAll(list1);
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final ImageView imageView;
private final TextView textView;
public ViewHolder(View itemView) {
super(itemView);
imageView = (ImageView) itemView.findViewById(R.id.imageview);
textView = (TextView) itemView.findViewById(R.id.textview);
}
}
}
一个有轮播图的页面:
public class Main3Activity extends AppCompatActivity {
private Banner banner;
private TextView text;
private List<String> listimage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
initView();
}
private void initView() {
banner = (Banner) findViewById(R.id.banner);
text = (TextView) findViewById(R.id.text);
banner.setImageLoader(new GlideImage());
initDate();
banner.setImages(listimage);
banner.start();
}
private void initDate() {
String string = getIntent().getStringExtra("name").toString();
String string1 = getIntent().getStringExtra("figure").toString();
listimage = new ArrayList<String>();
for (int i = 0; i < 3; i++) {
listimage.add(string1);
}
text.setText(string);
}
}
再写一个图片加载的类:
public class GlideImage extends ImageLoader{
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
}
这里需要导一些依赖:
compile 'com.android.support:design:25.0.1'
compile 'com.github.bumptech.glide:glide:3.6.1'
compile 'com.squareup.okhttp3:okhttp:3.8.1'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.youth.banner:banner:1.4.9'
testCompile 'junit:junit:4.12'
最后不要忘记添加网络权限 还有读写的权限。
还有post请求:
//http://apis.juhe.cn/goodbook/query?key=12eacb4c434f45020d399155be7bd1c3&catalog_id=246&rn=10&rn=10
String POST_URL = "http://apis.juhe.cn/goodbook/query?";
// 请求条件:key=12eacb4c434f45020d399155be7bd1c3&catalog_id=246&rn=10&rn=10
RequestBody requestBodyPost = new FormBody.Builder()
.add("key", "12eacb4c434f45020d399155be7bd1c3")
.add("catalog_id", "246")
.add("rn", "10")
.add("rn", "10")
.build();
Request requestPost = new Request.Builder()
.url(POST_URL)
.post(requestBodyPost)
.build();
client.newCall(requestPost).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
final String string = response.body().string();
runOnUiThread(new Runnable() {
@Override
public void run() {
tvShow.setText(string);
}
});
}
});
apple 20:58:18 (多人发送)
http://blog.csdn.net/ming2316780/article/details/51598063
其实我也看不懂这个post请求 只是考试需要 以防万一 嘿嘿