import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.appindexing.Thing;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.TimeUnit;
import adapter.MyAdapter;
import bean.Bean;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import recycler.RecyclerViewLisener;
public class MainActivity extends AppCompatActivity {
private RecyclerView rv;
private String url = "http://www.toutiao.com/api/pc/focus/";
private MyAdapter adapter;
private List<Bean.DataBean.PcFeedFocusBean> list;
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
private GoogleApiClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}
private void initData() {
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.writeTimeout(15, TimeUnit.SECONDS)
.readTimeout(15, TimeUnit.SECONDS)
.connectTimeout(20, TimeUnit.SECONDS)
.build();
Request request = new Request.Builder()
.url(url)
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
// Log.i("onFailure",""+e);
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
String s = response.body().string();
Log.i("=====", "onResponse: " + s);
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
// Log.i("++++++++++", "run: "+bean);
// list=bean.getData();
list = bean.getData().getPc_feed_focus();
adapter = new MyAdapter(MainActivity.this);
adapter.setData(list);
rv.setAdapter(adapter);
adapter.setOnItemClickListener(new RecyclerViewLisener.OnItemClickListener() {
@Override
public void OnItemClick(View v, int position) {
Toast.makeText(MainActivity.this, "新闻标题是:" +
list.get(position)
.getTitle(),
Toast.LENGTH_SHORT).show();
}
});
adapter.notifyDataSetChanged();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
});
}
private void initView() {
rv = (RecyclerView) findViewById(R.id.recyclerView);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
rv.setLayoutManager(linearLayoutManager);
}
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
public Action getIndexApiAction() {
Thing object = new Thing.Builder()
.setName("Main Page") // TODO: Define a title for the content shown.
// TODO: Make sure this auto-generated URL is correct.
.setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]"))
.build();
return new Action.Builder(Action.TYPE_VIEW)
.setObject(object)
.setActionStatus(Action.STATUS_TYPE_COMPLETED)
.build();
}
@Override
public void onStart() {
super.onStart();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client.connect();
AppIndex.AppIndexApi.start(client, getIndexApiAction());
}
@Override
public void onStop() {
super.onStop();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
AppIndex.AppIndexApi.end(client, getIndexApiAction());
client.disconnect();
}
}
======================================
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.e.combayweichenqing0726.R;
import java.util.ArrayList;
import java.util.List;
import bean.Bean;
import recycler.RecyclerViewLisener;
/**
* Created by e on 2017/7/26.
*/
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyHolder> implements View.OnClickListener,View.OnLongClickListener{
private Context context;
private List<Bean.DataBean.PcFeedFocusBean> list = new ArrayList<>();
private RecyclerViewLisener.OnItemClickListener listener;
private RecyclerViewLisener.OnItemLongClickListener longClickListener;
public MyAdapter(Context context) {
this.context = context;
}
public void setOnItemClickListener(RecyclerViewLisener.OnItemClickListener listener) {
this.listener = listener;
}
public void setOnLongItemClickListener(RecyclerViewLisener.OnItemLongClickListener longListener) {
this.longClickListener = longListener;
}
public void setData(List<Bean.DataBean.PcFeedFocusBean> datas) {
if (datas != null) {
list.addAll(datas);
}
}
@Override
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=LayoutInflater.from(context).inflate(R.layout.item_layout, parent, false);
MyHolder holder = new MyHolder(view);
view.setOnClickListener(this);
view.setOnLongClickListener(this);
return holder;
}
@Override
public void onBindViewHolder(MyHolder holder, int position) {
MyHolder holder1=holder;
holder1.itemView.setTag(position);
holder.texts.setText(list.get(position).getTitle());
Glide.with(context).load(list.get(position).getImage_url()).into(holder1.imageView);
}
@Override
public int getItemCount() {
return list.size();
}
@Override
public void onClick(View view) {
if (listener!=null){
listener.OnItemClick(view, (Integer) view.getTag());
}
}
@Override
public boolean onLongClick(View view) {
if (longClickListener!=null){
longClickListener.OnItemLongClick(view, (Integer) view.getTag());
}
return false;
}
class MyHolder extends RecyclerView.ViewHolder {
TextView texts;
ImageView imageView;
public MyHolder(View itemView) {
super(itemView);
texts = (TextView) itemView.findViewById(R.id.texts);
imageView = (ImageView) itemView.findViewById(R.id.imageView);
}
}
}
=================================
public class RecyclerViewLisener {
public interface OnItemClickListener{
void OnItemClick(View v,int position);
}
public interface OnItemLongClickListener{
void OnItemLongClick(View v,int position);
}
}