Recycler+cardsview

compile 'com.android.support:cardview-v7:24.0.0'
compile 'com.android.support:recyclerview-v7:25.0.0'


<?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:layout_width="match_parent"
    android:layout_height="match_parent"
>
<android.support.v7.widget.RecyclerView
    android:id="@+id/rec"
    android:background="#ffffff"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

</android.support.v7.widget.RecyclerView>
</RelativeLayout>




<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:id="@+id/cards"
    android:layout_height="wrap_content"
    app:cardCornerRadius="16dp"
    app:cardElevation="16dp"
    >
    <LinearLayout

        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/head"
            android:src="@mipmap/ic_launcher"
            android:layout_width="150dp"
            android:layout_height="100dp" />
        <TextView
            android:text="标题"
            android:id="@+id/title"
            android:layout_weight="1"

            android:gravity="right"
            android:layout_gravity="center"
            android:layout_marginRight="10dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
</android.support.v7.widget.CardView>



menu
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/Gridview"
        android:title="Listview"
        ></item>
    <item android:id="@+id/Listview"
        android:title="Gridview"
        ></item>
</menu>



package fengranbawei.com.baway.yuekao4.fengranstexts;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;

import com.google.gson.Gson;

import java.io.IOException;
import java.io.InputStream;


public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private Mynews mynews;
    private MyAdapter mm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
        setContentView(R.layout.activity_main);
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.title);
        recyclerView = (RecyclerView) findViewById(R.id.rec);
        //设置布局
        //  getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.title);
        try {
            getdara();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    private void getdara() throws IOException {
        InputStream open = getAssets().open("data.txt");
        final String getstr = MyUtils.getstr(open);

        Gson gson = new Gson();
        mynews = gson.fromJson(getstr, Mynews.class);
        recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
        recyclerView.addItemDecoration(new DividerItemDecoration(this,
                DividerItemDecoration.VERTICAL));
        mm = new MyAdapter(mynews.getApk(), MainActivity.this);
        recyclerView.setAdapter(mm);
        mm.Onitemlongclick(new MyAdapter.OnItemclick() {
            @Override
            public void getdata(View view, int position) {
                Log.e("ss","!@3");
                mm.remove(position);
            }
        });



    }








    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.result_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch(item.getItemId()) {
            case R.id.Listview :{
            //   recyclerView.setLayoutManager(new GridLayoutManager(this,2));
                recyclerView.setLayoutManager(new StaggeredGridLayoutManager(4,
                        StaggeredGridLayoutManager.HORIZONTAL));
                mm.notifyDataSetChanged();
                break;
            }
            case R.id.Gridview:{
                recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));

                break;
            }
        }


        return true;
    }

}





package fengranbawei.com.baway.yuekao4.fengranstexts;
import android.content.Context;
import android.support.v7.widget.CardView;
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.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;
/**
 * Created by Administrator on 2017/5/2.
 */
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.Myholder> {
    private List<Mynews.ApkBean>list;
    private Context context;

    public MyAdapter(List<Mynews.ApkBean> list, Context context) {
        this.list = list;
        this.context = context;
    }
    @Override
    public Myholder onCreateViewHolder(ViewGroup parent, int viewType) {
        Myholder holder = new Myholder(LayoutInflater.from(
                context).inflate(R.layout.item_recy, parent,
                false));
        return holder;
    }
    @Override
    public void onBindViewHolder(final Myholder holder, final int position) {
        //  Glide.with(context).load(list.get(position).getIconUrl()).into(head);
        ImageLoader.getInstance().displayImage(list.get(position).getIconUrl(),holder.head); //
        holder.title.setText(list.get(position).getName());

        //设置长按事件
        //拿到条目的长按事件
        holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                //将数据通过条目的长按事件传递过去
                lisntner.getdata(v,holder.getLayoutPosition());
                return true;
            }
        });


        //移除数据
    }


    public void remove(int position) {
        list.remove(position);
        notifyItemRemoved(position);
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
    class Myholder extends RecyclerView.ViewHolder{
        CardView cards;
        ImageView head;
        TextView title;
        public Myholder(View itemView) {
            super(itemView);
            head= (ImageView) itemView.findViewById(R.id.head);
            cards= (CardView) itemView.findViewById(R.id.cards);
            title= (TextView) itemView.findViewById(R.id.title);


        }
    }
    OnItemclick lisntner;
    public interface  OnItemclick{
        void getdata(View view,int position);


    }
    public void  Onitemlongclick(OnItemclick lisntner){
        this.lisntner=lisntner;
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值