package com.luobo.www.listview;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.luobo.www.listview.utils.GsonObjectCallback;
import com.luobo.www.listview.utils.NetWorkUtils;
import com.luobo.www.listview.utils.OkHttp3Utils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import okhttp3.Call;
public class MainActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private List<bean.DataBean> mDatas;
private HomeAdapter mAdapter;
String url="http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
boolean netWorkAvailable = NetWorkUtils.isNetWorkAvailable(this);
if (!netWorkAvailable) {
Toast.makeText(MainActivity.this, "联网:" + netWorkAvailable, Toast.LENGTH_SHORT).show();
}
indata();
//initData();
mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);
/*mRecyclerView.setLayoutManager(new LinearLayoutManager(this));*/
//mRecyclerView.setLayoutManager(new GridLayoutManager(this,4));
mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(4,StaggeredGridLayoutManager.VERTICAL));
// mRecyclerView.addItemDecoration(new DividerItemDecoration(this,
// DividerItemDecoration.VERTICAL));
mRecyclerView.addItemDecoration(new DividerItemDecoration(this,
DividerItemDecoration.HORIZONTAL));
}
public void indata(){
OkHttp3Utils.getInstance().doGet(url, new GsonObjectCallback<bean>() {
@Override
public void onUi(bean user) {
mDatas = new ArrayList<bean.DataBean>();
// user.getData().get(0).getNews_title();
mDatas = user.getData();
mRecyclerView.setAdapter(mAdapter = new HomeAdapter());
}
@Override
public void onFailed(Call call, IOException e) {
}
});
}
/*protected void initData()
{
mDatas = new ArrayList<String>();
*//*mDatas.add("学科建设覅偶得如");
mDatas.add("学科建设覅偶得如");
mDatas.add("学科建设覅偶得如第三方");
mDatas.add("学科建设覅");
mDatas.add("学科建设覅偶得如代发货各回各家");*//*
for (int i = 'A'; i < 'z'; i++)
{
mDatas.add("" + (char) i);
}
}*/
class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder>
{
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
MainActivity.this).inflate(R.layout.item, parent,
false));
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position)
{
holder.tv.setText(mDatas.get(position).getNews_title());
ViewGroup.LayoutParams layoutParams = holder.tv.getLayoutParams();
Random random = new Random();
layoutParams.height = random.nextInt(100);
holder.tv.setLayoutParams(layoutParams);
}
@Override
public int getItemCount()
{
return mDatas.size();
}
class MyViewHolder extends RecyclerView.ViewHolder
{
TextView tv;
public MyViewHolder(View view)
{
super(view);
tv = (TextView) view.findViewById(R.id.id_num);
}
}
}
}
package com.luobo.www.listview;
import android.app.Application;
/**
* 1. 类的用途
* 2. @author forever
* 3. @date 2017/9/8 12:33
*/
public class MyApp extends Application {
public static MyApp mInstance;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
public static MyApp getInstance() {
return mInstance;
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="com.luobo.www.listview.MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/id_recyclerview"
android:divider="#ffff0000"
android:dividerHeight="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
Item
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#44ff0000"
android:layout_marginBottom="5dp"
>
<TextView
android:id="@+id/id_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="1" />
</FrameLayout>