XML:
<?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"
android:orientation="vertical"
tools:context="com.example.mmaster.zhong_kao_myapplication.JIeXiActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/recy"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
java代码:解析
package com.example.mmaster.zhong_kao_myapplication;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.widget.Toast;
import com.example.mmaster.zhong_kao_myapplication.adapter.MyAdapter;
import com.example.mmaster.zhong_kao_myapplication.bean.Mybean;
import com.example.mmaster.zhong_kao_myapplication.greendao.ListBeanDao;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.List;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class JIeXiActivity extends AppCompatActivity {
private List<ListBean> list;
@SuppressLint("HandlerLeak")
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String json = (String) msg.obj;
Mybean mybean = new Gson().fromJson(json, Mybean.class);
list = mybean.getList();
Log.e("********", list.get(1).getTitle());
recy.setLayoutManager(new LinearLayoutManager(JIeXiActivity.this));
myAdapter = new MyAdapter(list, JIeXiActivity.this);
recy.setAdapter(myAdapter);
//适配器点击事件
myAdapter.setOnCliK(new MyAdapter.OnClik() {
@Override
public void OnCliklistener(int position) {
Toast.makeText(JIeXiActivity.this, "hhhhh", Toast.LENGTH_SHORT).show();
String image = list.get(position).getImage();
String title = list.get(position).getTitle();
String time = list.get(position).getTime();
int order = list.get(position).getOrder();
ListBean listBean = new ListBean(null, title, time,image,order);
dao.insert(listBean);
//加入到数据库
}
@Override
public void OnCliklistener2(int position) {
Toast.makeText(JIeXiActivity.this, "jjjjjjjj", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(JIeXiActivity.this, Ku_Activity.class);
startActivity(intent);
}
});
}
};
private MyAdapter myAdapter;
private RecyclerView recy;
private String url = "http://192.168.1.175:8080/qwer.json";
public static ListBeanDao dao;//
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jie_xi);
//调用数据库 调全局静态修饰
dao = App.getMyApp().getDaoSession().getListBeanDao();
initView();
initData();
}
private void initData() {
//异步解析
OkHttpClient build = new OkHttpClient.Builder().build();
Request request = new Request.Builder().url(url).get().build();
build.newCall(request).enqueue(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();
Log.e("------",string);
handler.obtainMessage(1, string).sendToTarget();
}
});
}
private void initView() {
recy = (RecyclerView) findViewById(R.id.recy);
}
}
多布局适配器 :
package com.example.mmaster.zhong_kao_myapplication.adapter;
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.example.mmaster.zhong_kao_myapplication.ListBean;
import com.example.mmaster.zhong_kao_myapplication.R;
import com.example.mmaster.zhong_kao_myapplication.bean.Mybean;
import com.squareup.picasso.Picasso;
import java.util.List;
/**
* Created by mMaster
* on 2018/4/12.
* at 北京
*/
public class MyAdapter extends RecyclerView.Adapter{
private List<ListBean> list;
private Context mc;
private OnClik onClik;
public MyAdapter(List<ListBean> list, Context mc) {
this.list = list;
this.mc = mc;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == 1) {
View inflate = LayoutInflater.from(mc).inflate(R.layout.item, parent, false);
return new Holder(inflate);
} else {
View inflate = LayoutInflater.from(mc).inflate(R.layout.layout, parent, false);
return new Holder2(inflate);
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
if (holder instanceof Holder) {
Picasso.with(mc).load(list.get(position).getImage()).into(((Holder) holder).img);
((Holder) holder).mtitle.setText(list.get(position).getTitle());
((Holder) holder).mtime.setText(list.get(position).getTime());
}
if (holder instanceof Holder2) {
Picasso.with(mc).load(list.get(position).getImage()).into(((Holder2) holder).img);
((Holder2) holder).mtitle.setText(list.get(position).getTitle());
((Holder2) holder).mtime.setText(list.get(position).getTime());
}
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onClik.OnCliklistener(position);
}
});
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
onClik.OnCliklistener2(position);
return true;
}
});
}
/* @Override
public int getItemViewType(int position) {
if (list.get(position).getOrder() == 1) {
return 1;
} else {
return 2;
}
}*/
@Override
public int getItemViewType(int position) {
if (list.get(position).getOrder()==1){
return 1;
}else {
return 2;
}
}
@Override
public int getItemCount() {
return list.size();
}
public class Holder extends RecyclerView.ViewHolder {
private final TextView mtitle;
private final TextView mtime;
private final ImageView img;
public Holder(View itemView) {
super(itemView);
mtitle = itemView.findViewById(R.id.mtitle);
mtime = itemView.findViewById(R.id.mtime);
img = itemView.findViewById(R.id.img);
}
}
public class Holder2 extends RecyclerView.ViewHolder {
private final TextView mtitle;
private final TextView mtime;
private final ImageView img;
public Holder2(View itemView) {
super(itemView);
mtitle = itemView.findViewById(R.id.mtitle);
mtime = itemView.findViewById(R.id.mtime);
img = itemView.findViewById(R.id.img);
}
}
定义接口回调//
public interface OnClik {
void OnCliklistener(int position);
void OnCliklistener2(int position);
}
public void setOnCliK(OnClik onClik) {
this.onClik = onClik;
}
}
多布局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="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/img"
android:layout_width="100dp"
android:layout_height="100dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/mtitle"
android:text="hhh"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/mtime"
android:text="hhh"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
数据库XML:/
<?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"
android:orientation="vertical"
tools:context="com.example.mmaster.zhong_kao_myapplication.Ku_Activity">
<android.support.v7.widget.RecyclerView
android:id="@+id/recy"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
数据库Java代码
package com.example.mmaster.zhong_kao_myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import com.example.mmaster.zhong_kao_myapplication.adapter.MyAdapter;
import com.example.mmaster.zhong_kao_myapplication.greendao.ListBeanDao;
import java.util.List;
public class Ku_Activity extends AppCompatActivity {
private RecyclerView recy;
private ListBeanDao dao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ku_);
initView();
//数据库查询
dao = App.getMyApp().getDaoSession().getListBeanDao();
List<ListBean> listBeans = dao.loadAll();
//调用适配器
MyAdapter myAdapter = new MyAdapter(listBeans, this);
recy.setAdapter(myAdapter);
}
private void initView() {
recy = (RecyclerView) findViewById(R.id.recy);
recy.setLayoutManager(new LinearLayoutManager(this));
}
}