//对应xml布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.eightgroup.zk3lx.Main3Activity">
<com.jcodecraeer.xrecyclerview.XRecyclerView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="match_parent">
</com.jcodecraeer.xrecyclerview.XRecyclerView>
</RelativeLayout>
//对应多条目的两个item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv"
/>
<ImageView
android:layout_below="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/img"
/>
</RelativeLayout>
//依赖包相关权限
compile 'com.jcodecraeer:xrecyclerview:1.3.2'
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:name=".app.MyApp"
//下面就是主页面
public class Main3Activity extends AppCompatActivity {
String uri="http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=10&offset=0 http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=10&offset=0 ";
private XRecyclerView list;
private HomeAdapter mAdapter;
List<News.SongListBean> song_list;
ImageLoader imagerloder;
int i;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
/* mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);*/
list = (XRecyclerView)findViewById(R.id.list);
//listview的效果
list.setLayoutManager(new LinearLayoutManager(this));
//上啦下拉的监听
list.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
getData(uri);
list.refreshComplete();
}
@Override
public void onLoadMore() {
getData(uri);
list.loadMoreComplete();
}
});
getData(uri);
}
private void getData(String uri) {
OkHttp3Utils.getInstance().doGet(uri, new GsonObjectCallback<News>(){
@Override
public void onUi(News news) {
song_list = news.getSong_list();
list.setAdapter(mAdapter = new HomeAdapter());
}
@Override
public void onFailed(Call call, IOException e) {
}
});
}
class HomeAdapter extends RecyclerView.Adapter {
@Override
public XRecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//多条目判断用哪个Hoderl
if(getItemViewType(viewType)==1)
{
MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
Main3Activity.this).inflate(R.layout.layout1, parent,
false));
return holder;
}else
{
MyViewHolder2 holder2 = new MyViewHolder2(LayoutInflater.from(
Main3Activity.this).inflate(R.layout.layout2, parent,
false));
return holder2;
}
//===============
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if(getItemViewType(position)==1)
{
MyViewHolder holder1 = (MyViewHolder) holder;
holder1.tv.setText(song_list.get(position).getTitle());
imagerloder = ImageLoader.getInstance();
imagerloder.displayImage(song_list.get(position).getPic_big(), holder1.img);
// 获得该控件的所有属性
/* ViewGroup.LayoutParams layoutParams = holder.tv.getLayoutParams();
Random random = new Random();
layoutParams.height = random.nextInt(200) + 50;
holder.tv.setLayoutParams(layoutParams);*/
}else {
MyViewHolder2 holder2 = (MyViewHolder2) holder;
holder2.tv1.setText(song_list.get(position).getTitle());
imagerloder = ImageLoader.getInstance();
imagerloder.displayImage(song_list.get(position).getPic_big(), holder2.img1);
// 获得该控件的所有属性
/* ViewGroup.LayoutParams layoutParams = holder.tv.getLayoutParams();
Random random = new Random();
layoutParams.height = random.nextInt(200) + 50;
holder.tv.setLayoutParams(layoutParams);*/
}
}
@Override
public int getItemCount() {
return song_list.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
ImageView img;
TextView tv;
public MyViewHolder(View view) {
super(view);
tv = (TextView) view.findViewById(R.id.tv);
img = (ImageView) view.findViewById(R.id.img);
}
}
// 对应第二个View
class MyViewHolder2 extends RecyclerView.ViewHolder {
ImageView img1;
TextView tv1;
public MyViewHolder2(View view) {
super(view);
tv1 = (TextView) view.findViewById(R.id.tv1);
img1= (ImageView) view.findViewById(R.id.img1);
}
}
//返回的类型
@Override
public int getItemViewType(int position) {
if(position%2==0){
return 2;
}else
{
return 1;
}
}
}
}
public class MyApp extends Application {
public static MyApp mInstance;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
ImageLoaderConfiguration imgeLoader = ImageLoaderConfiguration.createDefault(getApplicationContext());
ImageLoader.getInstance().init(imgeLoader);
}
public static MyApp getInstance() {
return mInstance;
}
}
//点击跳转 监听
mAdapter.setOnItemClickLitener(new HomeAdapter.OnItemClickLitener()
{
@Override
public void onItemClick(View view, int position)
{
Toast.makeText(getActivity(), position + " click",
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getActivity(),Main3Activity.class);
intent.putExtra("name",song_list.get(position).getAlbum_title().toString());
intent.putExtra("song",song_list.get(position).getPic_big().toString());
startActivity(intent);
}
@Override
public void onItemLongClick(View view, int position)
{
Toast.makeText(getActivity(), position + " long click",
Toast.LENGTH_SHORT).show();
}
});
//跳转接收
public class Main3Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
String name = getIntent().getStringExtra("name");
ImageView imageView = (ImageView)findViewById(R.id.main3_iamges);
TextView t = (TextView) findViewById(R.id.main3_text);
t.setText(name);
ImageLoader.getInstance().displayImage(getIntent().getStringExtra("song"),imageView);
}
//适配器调用 点击监听
public class HomeAdapter extends RecyclerView.Adapter {
Context context;
List<News.SongListBean> song_list;
ImageLoader imagerloder;
public interface OnItemClickLitener
{
void onItemClick(View view, int position);
void onItemLongClick(View view , int position);
}
private OnItemClickLitener mOnItemClickLitener;
public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener)
{
this.mOnItemClickLitener = mOnItemClickLitener;
}
public HomeAdapter(Context context, List<News.SongListBean> song_list) {
this.context = context;
this.song_list = song_list;
}
public XRecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//多条目判断用哪个Hoderl
if(getItemViewType(viewType)==1)
{
MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
context).inflate(R.layout.layoutxx, parent,
false));
return holder;
}else
{
MyViewHolder2 holder2 = new MyViewHolder2(LayoutInflater.from(
context).inflate(R.layout.layoutxxx, parent,
false));
return holder2;
}
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
if(getItemViewType(position)==1)
{
MyViewHolder holder1 = (MyViewHolder) holder;
holder1.tv.setText(song_list.get(position).getTitle());
imagerloder = ImageLoader.getInstance();
imagerloder.displayImage(song_list.get(position).getPic_big(), holder1.img);
}else {
MyViewHolder2 holder2 = (MyViewHolder2) holder;
holder2.tv1.setText(song_list.get(position).getTitle());
imagerloder = ImageLoader.getInstance();
imagerloder.displayImage(song_list.get(position).getPic_big(), holder2.img1);
}
if (mOnItemClickLitener != null) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = holder.getLayoutPosition();
mOnItemClickLitener.onItemClick(holder.itemView, pos);
}
});
}
}
@Override
public int getItemCount() {
return song_list.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
ImageView img;
TextView tv;
public MyViewHolder(View view) {
super(view);
tv = (TextView) view.findViewById(R.id.tv);
img = (ImageView) view.findViewById(R.id.img);
}
}
// 对应第二个View
class MyViewHolder2 extends RecyclerView.ViewHolder {
ImageView img1;
TextView tv1;
public MyViewHolder2(View view) {
super(view);
tv1 = (TextView) view.findViewById(R.id.tv1);
img1= (ImageView) view.findViewById(R.id.img1);
}
}
//返回的类型
@Override
public int getItemViewType(int position) {
if(position%2==0){
return 2;
}else
{
return 1;
}
}
}
//对应的界面解析
public class Fragment extends android.support.v4.app.Fragment {
String uri = "http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=10&offset=0 http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=10&offset=0";
Banner mbanner;
/*int page = 0;*/
private XRecyclerView list;
private HomeAdapter mAdapter;
List<News.SongListBean> song_list;
ImageLoader imagerloder;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = LayoutInflater.from(getContext()).inflate(R.layout.layout1, null);
mbanner = (Banner) view.findViewById(R.id.mybanne);
list = (XRecyclerView) view.findViewById(R.id.list);
list.setLayoutManager(new LinearLayoutManager(getContext()));
getData(uri);
list.setPullRefreshEnabled(true);
list.setLoadingMoreEnabled(true);
list.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
getData(uri );
list.refreshComplete();
}
@Override
public void onLoadMore() {
/* page += 1;*/
getData(uri);
/* song_list.addAll(song_list);*/
list.loadMoreComplete();
}
});
getData(uri);
return view;
}
private void getData(String uri) {
OkHttp3Utils.getInstance().doGet(uri, new GsonObjectCallback<News>() {
List<String> mlist = new ArrayList<String>();
@Override
public void onUi(News news) {
song_list = news.getSong_list();
list.setAdapter(mAdapter = new HomeAdapter(getActivity(),song_list));
mAdapter.setOnItemClickLitener(new HomeAdapter.OnItemClickLitener()
{
@Override
public void onItemClick(View view, int position)
{
Toast.makeText(getActivity(), position + " click",
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getActivity(),Main3Activity.class);
intent.putExtra("name",song_list.get(position).getAlbum_title().toString());
intent.putExtra("song",song_list.get(position).getPic_big().toString());
startActivity(intent);
}
@Override
public void onItemLongClick(View view, int position)
{
Toast.makeText(getActivity(), position + " long click",
Toast.LENGTH_SHORT).show();
}
});
for (int i = 0; i < song_list.size(); i++) {
String ad1s = song_list.get(i).getPic_big();
;
mlist.add(ad1s);
}
//设置图片加载器
mbanner.setImageLoader(new GlideImaGlideImageLoader());
mbanner.setImages(mlist);
mbanner.start();
}
@Override
public void onFailed(Call call, IOException e) {
}
});
}
}
//Banner的类
public class GlideImaGlideImageLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
}
getData(uri);
list.setPullRefreshEnabled(true);
list.setLoadingMoreEnabled(true);
list.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
getData(uri+0 );
list.refreshComplete();
}
@Override
public void onLoadMore() {
page += 1;
getData(uri+page);
/* song_list.addAll(song_list);*/
list.loadMoreComplete();
}
});
getData(uri);
return view;
}
public class HomeAdaper extends RecyclerView.Adapter {
Context context;
List<Homes.DataBean> list;
ImageLoader imagerloder;
public HomeAdaper(Context context, List<Homes.DataBean> list) {
this.context = context;
this.list = list;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
context).inflate(R.layout.layout1, parent,
false));
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
MyViewHolder holder1 = (MyViewHolder) holder;
holder1.tv.setText(list.get(position).getNews_title());
imagerloder = ImageLoader.getInstance();
imagerloder.displayImage(list.get(position).getPic_url(), holder1.img);
}
@Override
public int getItemCount() {
return list.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
ImageView img;
TextView tv;
public MyViewHolder(View view) {
super(view);
tv = (TextView) view.findViewById(R.id.tv);
img = (ImageView) view.findViewById(R.id.img);
}
}
}
//bannner轮播图
//相关权限
compile 'com.youth.banner:banner:1.4.9'
compile 'com.github.bumptech.glide:glide:3.7.0'
//提成全局
ArrayList mlist;
public void getNews(ArrayList<News.DataBean> list) {
recycler.setAdapter(homeadper =new HomeAdaper(Main2Activity.this,list));
mlist = new ArrayList();
for (int i = 0; i < list.size(); i++) {
mlist.add(list.get(i).getImage_url());
}
banner.setImageLoader(new GlideImageLoader());
banner.setImages(mlist);
banner.start();
homeadper.setOnItemClickLitener(new HomeAdaper.OnItemClickLitener()
{
@Override
public void onItemClick(View view, int position)
{
Toast.makeText(Main2Activity.this, position + " click",
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Main2Activity.this,Main3Activity.class);
startActivity(intent);
}
@Override
public void onItemLongClick(View view, int position)
{
Toast.makeText(Main2Activity.this, position + " long click",
Toast.LENGTH_SHORT).show();
}
});
}
}