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; } }
Recycler+cardsview
最新推荐文章于 2019-04-01 16:46:12 发布