用RecyclerView实现根据位置不同显示不同界面
在原来的基础上将LinearAdapter.java进行修改:
1 public class LinearAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
2 private Context mcontext;
3 private OnItemClickListener mlistener;
4 public LinearAdapter(Context context,OnItemClickListener listener){
5 this.mcontext=context;
6 this.mlistener=listener;
7 }
8 @NonNull
9 @Override
10 public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
11 if(viewType==2){
12 return new LinearViewHolder(LayoutInflater.from(mcontext).inflate(R.layout.layout_linear_item,parent,false));
13 }else{
14 return new LinearViewHolder2(LayoutInflater.from(mcontext).inflate(R.layout.layout_linear_item_2,parent,false));
15 }
16 }
17
18 @Override
19 public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder,int position) {
20 if(getItemViewType(position)==2){
21 ((LinearViewHolder)holder).textView.setText("大家好,我又来了hiahia");
22 }else{
23 ((LinearViewHolder2)holder).textView.setText("新年快乐!!");
24 }
25 holder.itemView.setOnClickListener(new View.OnClickListener() {
26 @Override
27 public void onClick(View view) {
28 //Toast.makeText(mcontext, "click...", Toast.LENGTH_SHORT).show();//第一种方法,如果加position的话就会标红,所以没加,具体原因还不知道
29 mlistener.onClick(position);//第二种方法,反正点击事件没起作用,还是算了吧不弄了
30 }
31 });//增加点击事件,这是第一种方法
32 }//这里原来是RecyclerView.ViewHolder,建立完LinearViewHolder class后要把它改成LinearAdapter.LinearViewHolder就可以了
33
34 public int getItemViewType(int position){
35 if(position%2==0){
36 return 2;//位置是偶数,返回2
37 }else {
38 return 1;//否则返回1
39 }
40 }
41
42 @Override
43 public int getItemCount() {
44 return 20;
45 }//设置有多少行
46
47 class LinearViewHolder extends RecyclerView.ViewHolder {
48 private TextView textView;
49 public LinearViewHolder(@NonNull View itemView) {
50 super(itemView);
51 textView=itemView.findViewById(R.id.tv_rtitle);
52 }
53 }
54
55 class LinearViewHolder2 extends RecyclerView.ViewHolder {
56 private TextView textView;
57 private ImageView imageView;
58 public LinearViewHolder2(@NonNull View itemView) {
59 super(itemView);
60 textView=itemView.findViewById(R.id.tv_rtitle);
61 imageView=itemView.findViewById(R.id.iv_jiqiren);
62 }
63 }
64
65 public interface OnItemClickListener{
66 void onClick(int pos);
67 }//点击事件的第二种方法,建立接口
68 }
然后创建另一个界面layout_linear_item_2.xml文件:
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 android:layout_width="match_parent"
3 android:layout_height="wrap_content"
4 android:orientation="vertical"
5 android:background="@color/white"
6 android:gravity="center">
7
8 <TextView
9 android:id="@+id/tv_rtitle"
10 android:layout_width="match_parent"
11 android:layout_height="50dp"
12 android:gravity="center"
13 android:textColor="@color/black"
14 android:textSize="20sp"/>
15
16 <ImageView
17 android:id="@+id/iv_jiqiren"
18 android:layout_width="wrap_content"
19 android:layout_height="wrap_content"
20 android:src="@drawable/jiqiren"/>
21 </LinearLayout>
最终效果图:

用RecyclerView实现根据位置不同显示不同界面的更多相关文章
- (原)python中matplot中获得鼠标点击的位置及显示灰度图像
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6182474.html 参考网址: http://matplotlib.org/examples/pyl ...
- (android 地图实战开发)2 创建MapActivity,根据设备当前位置,显示地图
(android 地图实战开发)2 创建MapActivity,根据设备当前位置,显示地图 http://www.cnblogs.com/macroxu-1982/archive/2011/09/13 ...
- PIE SDK元素位置和显示样式的修改
1功能简介 在数据的处理中会出现根据需求进行元素的位置和显示样式的修改,使元素的形状,空间位置得到改变,下面将介绍基于PIE SDK的元素位置和显示样式的修改. 2功能实现说明 2.1.1 实现思路及 ...
- [IOS NSUserDefaults]的使用:登陆后不再显示登录界面。
之前搜了好多地方都没找到实现“登陆后不再显示登录界面,而默认自动登录”的方法. 待我发现有种存储方式叫NSUserDefaults的时候,立马又感觉新技能get了. 简介: NSUserDefault ...
- vncserver和Ubuntu Xfce4远程桌面环境的配置,解决不显示图形界面
vncserver和Ubuntu Xfce4远程桌面环境的配置 参考的http://blog.163.com/thinki_cao/blog/static/8394487520130301453180 ...
- SharedPreference 存储小量数据,一般首次启动显示引导界面就用这个。
写://添加一个SharedPreference并传入数据SharedPreference sharedPreferences = getSharedPreferences("share_d ...
- 问题记录-Activity跳转后显示空白界面
前两天写一个简易安卓记事本,从主界面跳转到添加内容界面总是显示空白. 明明有setContentView xml文件在可视化开发环境下也正常显示.后经前辈指点,原来是复写onCreate函数时出现了问 ...
- WPF 显示初始化界面
今天在看<WPF编程宝典>时,看到了Application类,该类可以做很多事情,我认为比较实用的是显示初始化界面,因为之前有个项目在打开的时候要加载好多dll,非常耗时,让客户等的蛋疼, ...
- 直接拨号、将电话号码传入拨号程序、调用拨号程序、调用系统浏览器浏览网页、调用系统程序查看联系人、显示系统设置界面和显示Wi-Fi设置界面代码
直接拨号.将电话号码传入拨号程序.调用拨号程序.调用系统浏览器浏览网页.调用系统程序查看联系人.显示系统设置界面和显示Wi-Fi设置界面代码 拨打号码的代码如下: Intent callIntent= ...
随机推荐
- 集合框架-ArrayList集合存储自定义对象
1 package cn.itcast.p3.arraylist.test; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; ...
- 不难懂-----type=number 去掉加减按钮并禁止鼠标滚轮滚动
<style> /* 去除webkit中input的type="number"时出现的上下图标 */ input::-webkit-outer-spin-button, ...
- TCP可靠性
目录 一:TCP可靠性 1.通过序列号与确认应答提高可靠性 一:TCP可靠性 简介 TCP 通过检验和.序列号.确认应答.重发控制.连接管理以及窗口控制等机制实现可靠性传输. 1.通过序列号与确认应答 ...
- MySQL开发篇,存储引擎的选择真的很重要吗?
前言 谁说MySQL查询千万级别的数据很拉跨?我今天就要好好的和你拉拉家常,畅谈到深夜,一起过除夕!这篇文章也是年前的最后一篇,希望能带给大家些许收获,不知不觉查找文档和参考实体书籍就写了这么多,自己 ...
- ApacheCN 数据科学译文集 20211109 更新ApacheCN 数据科学译文集 20211109 更新
计算与推断思维 一.数据科学 二.因果和实验 三.Python 编程 四.数据类型 五.表格 六.可视化 七.函数和表格 八.随机性 九.经验分布 十.假设检验 十一.估计 十二.为什么均值重要 十三 ...
- https的页面内嵌入http页面报错的问题
1.https的页面内嵌入http页面报错 在HTTPS的页面上嵌入http的页面时,浏览器会直接报错.比如在HTTPS页面上用 iframe 直接嵌入一个 http 页面,比如我们可以在百度上直接嵌 ...
- swwager的使用
最近弄swwager文档,被搞得恼火,故记录一下 先展示一下现有的页面,此页面由swwager自动生成 配置步骤: 一:导入swwager的依赖 <!-- =================== ...
- Core Animation的使用步骤
- finally块
/* finally 块: finally块的 使用前提是必须要存在try块才能使用. finally块的代码在任何情况下都会执行的,除了jvm退出的情况. finally非常适合做资源释放的工作,这 ...
- MySQL 日志管理及备份与恢复
MySQL 日志管理及备份与恢复 1.日志管理 2.备份与恢复 1.日志管理: MySQL的默认日志保存位置为/usr/local/mysql/data 日志开启方式有两种:通过配置文件或者是通过命令 ...