Android中的RecyclerView
来源:互联网 发布:转发淘宝链接赚钱 编辑:程序博客网 时间:2024/06/06 07:14
效果图:
item_view.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="60dp" android:textSize="18sp" android:gravity="center" android:background="@color/colorPrimary" android:layout_margin="1dp" ></TextView>Adapter
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private List<String> mData; private OnItemClickListener mOnItemClickListener; public MyAdapter(List<String> mData) { this.mData = mData; } public void setOnItemClickListener(OnItemClickListener onItemClickListener) { mOnItemClickListener = onItemClickListener; } public interface OnItemClickListener { public void onItemClick(); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_view, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { ((ViewHolder)holder).textView.setText(mData.get(position) + " " + position); } @Override public int getItemCount() { return mData.size(); } public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ public TextView textView; public ViewHolder(View itemView) { super(itemView); textView = (TextView) itemView; textView.setOnClickListener(this); } @Override public void onClick(View view) { mOnItemClickListener.onItemClick(); } }}Activity
public class MainActivity extends Activity implements View.OnClickListener{ private RecyclerView mRecyclerView; private MyAdapter mAdapter; private ArrayList<String> mData; private Spinner mSpinner; private View mButtonAdd,mButtonDel; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mData = new ArrayList<>(); mData.add("hello"); mData.add("world"); mData.add("sleeping"); mRecyclerView = findViewById(R.id.recycler_view); mSpinner = findViewById(R.id.spinner); mButtonAdd = findViewById(R.id.add_button); mButtonDel = findViewById(R.id.delete_button); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mAdapter = new MyAdapter(mData); mAdapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() { @Override public void onItemClick() { Toast.makeText(MainActivity.this, "test --------", Toast.LENGTH_SHORT).show(); } }); mRecyclerView.setHasFixedSize(true); mRecyclerView.setAdapter(mAdapter); mButtonAdd.setOnClickListener(this); mButtonDel.setOnClickListener(this); List<String> list = new ArrayList<>(); list.add("LinearLayoutManager"); list.add("GridLayoutManager"); mSpinner.setAdapter(new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_spinner_item, list)); mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { if (i == 0) { mRecyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this)); } else if (i == 1) { mRecyclerView.setLayoutManager(new GridLayoutManager(MainActivity.this, 3)); } else { } } @Override public void onNothingSelected(AdapterView<?> adapterView) { } }); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.add_button: mData.add("plus: "); if (mData.size() > 0) { mAdapter.notifyDataSetChanged(); } break; case R.id.delete_button: if (mData.size() > 0) { mData.remove(mData.size() - 1); mAdapter.notifyDataSetChanged(); } break; default: break; } }}layout:
<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" tools:context="com.weilei.themedemo.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="wrap_content" > </android.support.v7.widget.RecyclerView> <LinearLayout android:id="@+id/bottom_layout" android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="horizontal" android:layout_alignParentBottom="true"> <Spinner android:id="@+id/spinner" android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight="1" > </Spinner> <Button android:id="@+id/add_button" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="ADD" /> <Button android:id="@+id/delete_button" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="DEL" /> </LinearLayout></RelativeLayout>
阅读全文
0 0
- Android中的RecyclerView
- Android中的RecyclerView: 基础知识
- Android中的RecyclerView: 基础知识
- Android中的RecyclerView
- Android中的RecyclerView源码分析
- 【Android】Android中的RecyclerView的基本使用
- Android中的RecyclerView的使用(一)
- Android RecyclerView 中的 item 如何居中
- android Databinding在RecyclerView中的应用
- Android RecyclerView
- android RecyclerView
- android-RecyclerView
- Android RecyclerView
- Android RecyclerView
- Android--RecyclerView
- Android RecyclerView
- Android RecyclerView
- android RecyclerView
- penalty kick
- PADS 新手学习问题点
- webpack执行热加载命令报错:无法识别的contentbase
- 百钱买百鸡
- java 集合 Map测试
- Android中的RecyclerView
- Struts使用dojo框架的 AJAX标签中的<sx:head/>的作用
- [日常套路] 3-way QuickSort
- 极致病毒设计的思想试验
- 剑指offer--面试题27:二叉树的镜像
- Android——搭建开发环境和了解Android
- linux中进程命令
- BigDecimal-精确表示货币值2
- NAT模式下,虚拟机与主机不能互通