在原来的基础上将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实现根据位置不同显示不同界面的更多相关文章

  1. (原)python中matplot中获得鼠标点击的位置及显示灰度图像

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6182474.html 参考网址: http://matplotlib.org/examples/pyl ...

  2. (android 地图实战开发)2 创建MapActivity,根据设备当前位置,显示地图

    (android 地图实战开发)2 创建MapActivity,根据设备当前位置,显示地图 http://www.cnblogs.com/macroxu-1982/archive/2011/09/13 ...

  3. PIE SDK元素位置和显示样式的修改

    1功能简介 在数据的处理中会出现根据需求进行元素的位置和显示样式的修改,使元素的形状,空间位置得到改变,下面将介绍基于PIE SDK的元素位置和显示样式的修改. 2功能实现说明 2.1.1 实现思路及 ...

  4. [IOS NSUserDefaults]的使用:登陆后不再显示登录界面。

    之前搜了好多地方都没找到实现“登陆后不再显示登录界面,而默认自动登录”的方法. 待我发现有种存储方式叫NSUserDefaults的时候,立马又感觉新技能get了. 简介: NSUserDefault ...

  5. vncserver和Ubuntu Xfce4远程桌面环境的配置,解决不显示图形界面

    vncserver和Ubuntu Xfce4远程桌面环境的配置 参考的http://blog.163.com/thinki_cao/blog/static/8394487520130301453180 ...

  6. SharedPreference 存储小量数据,一般首次启动显示引导界面就用这个。

    写://添加一个SharedPreference并传入数据SharedPreference sharedPreferences = getSharedPreferences("share_d ...

  7. 问题记录-Activity跳转后显示空白界面

    前两天写一个简易安卓记事本,从主界面跳转到添加内容界面总是显示空白. 明明有setContentView xml文件在可视化开发环境下也正常显示.后经前辈指点,原来是复写onCreate函数时出现了问 ...

  8. WPF 显示初始化界面

    今天在看<WPF编程宝典>时,看到了Application类,该类可以做很多事情,我认为比较实用的是显示初始化界面,因为之前有个项目在打开的时候要加载好多dll,非常耗时,让客户等的蛋疼, ...

  9. 直接拨号、将电话号码传入拨号程序、调用拨号程序、调用系统浏览器浏览网页、调用系统程序查看联系人、显示系统设置界面和显示Wi-Fi设置界面代码

    直接拨号.将电话号码传入拨号程序.调用拨号程序.调用系统浏览器浏览网页.调用系统程序查看联系人.显示系统设置界面和显示Wi-Fi设置界面代码 拨打号码的代码如下: Intent callIntent= ...

随机推荐

  1. 集合框架-ArrayList集合存储自定义对象

    1 package cn.itcast.p3.arraylist.test; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; ...

  2. 不难懂-----type=number 去掉加减按钮并禁止鼠标滚轮滚动

    <style> /* 去除webkit中input的type="number"时出现的上下图标 */ input::-webkit-outer-spin-button, ...

  3. TCP可靠性

    目录 一:TCP可靠性 1.通过序列号与确认应答提高可靠性 一:TCP可靠性 简介 TCP 通过检验和.序列号.确认应答.重发控制.连接管理以及窗口控制等机制实现可靠性传输. 1.通过序列号与确认应答 ...

  4. MySQL开发篇,存储引擎的选择真的很重要吗?

    前言 谁说MySQL查询千万级别的数据很拉跨?我今天就要好好的和你拉拉家常,畅谈到深夜,一起过除夕!这篇文章也是年前的最后一篇,希望能带给大家些许收获,不知不觉查找文档和参考实体书籍就写了这么多,自己 ...

  5. ApacheCN 数据科学译文集 20211109 更新ApacheCN 数据科学译文集 20211109 更新

    计算与推断思维 一.数据科学 二.因果和实验 三.Python 编程 四.数据类型 五.表格 六.可视化 七.函数和表格 八.随机性 九.经验分布 十.假设检验 十一.估计 十二.为什么均值重要 十三 ...

  6. https的页面内嵌入http页面报错的问题

    1.https的页面内嵌入http页面报错 在HTTPS的页面上嵌入http的页面时,浏览器会直接报错.比如在HTTPS页面上用 iframe 直接嵌入一个 http 页面,比如我们可以在百度上直接嵌 ...

  7. swwager的使用

    最近弄swwager文档,被搞得恼火,故记录一下 先展示一下现有的页面,此页面由swwager自动生成 配置步骤: 一:导入swwager的依赖 <!-- =================== ...

  8. Core Animation的使用步骤

  9. finally块

    /* finally 块: finally块的 使用前提是必须要存在try块才能使用. finally块的代码在任何情况下都会执行的,除了jvm退出的情况. finally非常适合做资源释放的工作,这 ...

  10. MySQL 日志管理及备份与恢复

    MySQL 日志管理及备份与恢复 1.日志管理 2.备份与恢复 1.日志管理: MySQL的默认日志保存位置为/usr/local/mysql/data 日志开启方式有两种:通过配置文件或者是通过命令 ...