Mainactivity
package likuo.bwie.com.zhoukao3;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.OrientationHelper;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Toast;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import likuo.bwie.com.zhoukao3.adapter.MyAdapter;
import likuo.bwie.com.zhoukao3.bean.Person;
import likuo.bwie.com.zhoukao3.network.NetWork;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity implements NetWork.Shuju {
private RecyclerView recyclerview;
MyAdapter mAdapter;
NetWork mNetWork;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mNetWork = new NetWork();
initView();
mAdapter = new MyAdapter(this);
mNetWork.setShuju(this);
mNetWork.nerWork();
recyclerview.setAdapter(mAdapter);
}
private void initView() {
recyclerview = findViewById(R.id.recyclerview);
recyclerview.setLayoutManager(new LinearLayoutManager(this,OrientationHelper.VERTICAL,false));
DividerItemDecoration decoration = new DividerItemDecoration(this,1);
decoration.setDrawable(ContextCompat.getDrawable(this,R.drawable.shape));
recyclerview.addItemDecoration(decoration);
}
@Override
public void successs(final List<Person.DataBean> data) {
runOnUiThread(new Runnable() {
@Override
public void run() {
mAdapter.setdata(data);
}
});
}
@Override
public void error() {
}
}
NetWork
package likuo.bwie.com.zhoukao3.network;
import android.widget.Toast;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.TimeUnit;
import likuo.bwie.com.zhoukao3.MainActivity;
import likuo.bwie.com.zhoukao3.bean.Person;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
/**
* date:2018/11/17
* author:李阔(淡意衬优柔)
* function:
*/
public class NetWork {
String path = "http://www.xieast.com/api/news/news.php";
public void nerWork(){
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.connectTimeout(5, TimeUnit.SECONDS)
.writeTimeout(5, TimeUnit.SECONDS)
.readTimeout(5, TimeUnit.SECONDS)
.build();
Request request = new Request.Builder()
.url(path)
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String result = response.body().string();
Person person = new Gson().fromJson(result, Person.class);
List<Person.DataBean> data = person.getData();
mShuju.successs(data);
}
});
}
public interface Shuju{
void successs(List<Person.DataBean> data);
void error();
}
private Shuju mShuju;
public void setShuju(Shuju shuju) {
mShuju = shuju;
}
}
adapter
package likuo.bwie.com.zhoukao3.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import java.util.ArrayList;
import java.util.List;
import likuo.bwie.com.zhoukao3.R;
import likuo.bwie.com.zhoukao3.bean.Person;
/**
* date:2018/11/17
* author:李阔(淡意衬优柔)
* function:
*/
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
Context context;
List<Person.DataBean> list;
public MyAdapter(Context context) {
this.context = context;
list = new ArrayList<>();
}
public void setdata(List<Person.DataBean> list) {
this.list.clear();
this.list.addAll(list);
notifyDataSetChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder{
Button delete;
TextView textview1;
TextView textview2;
ImageView imageview;
public ViewHolder(@NonNull View itemView) {
super(itemView);
textview1 = itemView.findViewById(R.id.textview1);
textview2 = itemView.findViewById(R.id.textview2);
imageview = itemView.findViewById(R.id.image);
delete = itemView.findViewById(R.id.delete);
}
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(context, R.layout.item,null);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i) {
viewHolder.textview1.setText(list.get(i).getAuthor_name());
viewHolder.textview2.setText(list.get(i).getTitle());
Glide.with(context).load(list.get(i).getThumbnail_pic_s()).into(viewHolder.imageview);
viewHolder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
list.remove(i);
notifyDataSetChanged();
}
});
}
@Override
public int getItemCount() {
return list.size();
}
}
布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="60dp">
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginStart="11dp"
android:src="@mipmap/fanhui"
/>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="今日头条"
android:textSize="40sp" />
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_below="@+id/text"
android:layout_alignParentEnd="true"
android:layout_marginTop="-47dp"
android:layout_marginEnd="0dp"
android:src="@mipmap/weixuan" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerview"/>
</LinearLayout>
item
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/image"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textview1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textview2"
/>
<Button
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="删除"
android:id="@+id/delete"
android:onClick="remove"/>
</LinearLayout>
</LinearLayout>