AS作业二

一、开发软件:Android studio

二、内容:

1、掌握UI设计中的layout布局(约束布局)与基本控件(button、text、imageview等);

2、掌握复杂控件与adapter的使用;

3、对有recycleView的页面进行点击跳转设计;

要实现列表,在上次实验的基础上,选择在 fragment_weixin上添加 recyclerview。将原来的 TextView 删除,再添加一个 recyclerview

在 myadapter 中需要重写三个方法:

重写 onCreateViewHolder :获取 view,并传入 MyViewHolder,最后返回一个 MyViewHolder

重写 onBindViewHolder :设置 holder 中的数据

重写 getItemCount :用于返回条目个数

添加 recyclerview 后,新建一个对应的 item_down.xml 文件,设计 recyclerview 内元素的 xml 样 式

创建适配器 RecyclerView.Adapter

完成适配器后,修改对应的 weixinFragment.java 文件

至此列表完成,接下来是进行跳转设计

在适配器里我们要加入点击监听事件,然后修改weixinFragment.java

在点击第一个事件时,会跳转到Main2Activity,点击其余事件则显示“在线”

然后写activity_main2.xml文件进行布局

在AndroidManifest.xml中添加

<activity android:name=".Main2Activity" />

部分代码如下:

myadapter.java

package com.example.mywork;import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.TextView;import androidx.annotation.NonNull;
import androidx.collection.CircularArray;
import androidx.recyclerview.widget.RecyclerView;import java.util.List;public class myadapter extends RecyclerView.Adapter<myadapter.Myviewholder> {private static OnRecyclerItemClickListener onItemClickListener;private List<chat> mList;private Context context;public myadapter(Context context,List<chat> list) {this.mList= list;this.context=context;}public myadapter() {}@NonNull@Overridepublic Myviewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType){View view=(View)LayoutInflater.from(parent.getContext()).inflate(R.layout.item_down,parent,false);Myviewholder myviewholder= new Myviewholder((view));return myviewholder;}@Overridepublic void onBindViewHolder(@NonNull Myviewholder holder, int position) {chat chat = mList.get(position);holder.Image.setImageResource(chat.getImageid());holder.Name.setText(chat.getName());holder.Message.setText(chat.getMessage());
//        holder.itemView.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                Intent intent=new Intent(context,frdFragment.class);
//                context.startActivities(new Intent[]{intent});
//            }
//        });}@Overridepublic int getItemCount() {return mList.size();}public  class Myviewholder extends RecyclerView.ViewHolder{private ImageView Image;private TextView Name;private TextView Message;public Myviewholder(@NonNull View itemView) {super(itemView);Image = itemView.findViewById(R.id.item_img);Name = itemView.findViewById(R.id.item_name);Message = itemView.findViewById(R.id.item_message);itemView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(onItemClickListener!=null){onItemClickListener.onRecyclerItemClick(getAdapterPosition());}}});}}public static void setRecyclerItemClickListener(OnRecyclerItemClickListener listener){onItemClickListener=listener;}public interface  OnRecyclerItemClickListener{void  onRecyclerItemClick(int position);}}

weixinFragment.java

package com.example.mywork;import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;import android.app.Fragment;import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Toast;import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;import java.util.ArrayList;
import java.util.List;public class weixinFragment extends Fragment {private Context context;private List<chat> mList = new ArrayList<chat>();// TODO: Rename parameter arguments, choose names that match// the fragment initialization parameters, e.g. ARG_ITEM_NUMBERprivate static final String ARG_PARAM1 = "param1";private static final String ARG_PARAM2 = "param2";// TODO: Rename and change types of parametersprivate String mParam1;private String mParam2;public weixinFragment() {// Required empty public constructor}// TODO: Rename and change types and number of parameterspublic static weixinFragment newInstance(String param1, String param2) {weixinFragment fragment = new weixinFragment();Bundle args = new Bundle();args.putString(ARG_PARAM1, param1);args.putString(ARG_PARAM2, param2);fragment.setArguments(args);return fragment;}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);if (getArguments() != null) {mParam1 = getArguments().getString(ARG_PARAM1);mParam2 = getArguments().getString(ARG_PARAM2);}}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view= inflater.inflate(R.layout.fragment_weixin, container, false);context = (Activity) view.getContext();InitData();RecyclerView recyclerView = view.findViewById(R.id.recyclerview);myadapter adapter = new myadapter(context,mList);recyclerView.setAdapter(adapter);LinearLayoutManager manager = new LinearLayoutManager(context);manager.setOrientation(LinearLayoutManager.VERTICAL);recyclerView.setLayoutManager(manager);recyclerView.addItemDecoration(new DividerItemDecoration(context,LinearLayoutManager.VERTICAL ));myadapter.setRecyclerItemClickListener(new myadapter.OnRecyclerItemClickListener() {@Overridepublic void onRecyclerItemClick(int position) {Toast.makeText(getActivity(),"在线",Toast.LENGTH_LONG).show();if (position==0){Intent intent=new Intent(getActivity(),Main2Activity.class);startActivity(intent);}}});return view;}private void InitData() {for (int i = 0; i < 10; i++) {chat friend_1 = new chat(i, R.drawable.friend_1, "刘婧","我们一起出去玩吧");mList.add(friend_1);chat friend_2= new chat(i, R.drawable.friend_2, "高妍","你想去看电影吗");mList.add(friend_2);chat friend_3 = new chat(i, R.drawable.friend_3, "占明润","可好看了");mList.add(friend_3);chat friend_4 = new chat(i, R.drawable.friend_4, "陈飞宇","哈哈哈哈笑死了");mList.add(friend_4);chat friend_5 = new chat(i, R.drawable.friend_5, "徐洲","冲冲冲");mList.add(friend_5);chat friend_6 = new chat(i, R.drawable.friend_6, "黄林海","哎哟");mList.add(friend_6);chat friend_7 = new chat(i, R.drawable.friend_7, "胡凯","那就行");mList.add(friend_7);chat friend_8 = new chat(i, R.drawable.friend_8, "陈聪颖","去打球吧");mList.add(friend_8);chat friend_9 = new chat(i, R.drawable.friend_9, "余畅","我也觉得");mList.add(friend_9);chat friend_10 = new chat(i, R.drawable.friend_10, "余梦珂","莫?");mList.add(friend_10);}}}

activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#ffffff"><!--左侧的图片布局盒子--><LinearLayoutandroid:id="@+id/ll_1"android:layout_width="wrap_content"android:layout_height="125dp"android:gravity="center"><ImageViewandroid:id="@+id/item_img"android:layout_width="100dp"android:layout_height="100dp"android:layout_margin="10dp"android:src="@drawable/friend_1"android:background="#DFDFDF"/></LinearLayout><!--右侧文字盒子布局--><LinearLayoutandroid:id="@+id/ll_2_name"android:layout_width="match_parent"android:layout_height="125dp"android:orientation="vertical"><!--名字TextView所在盒子布局--><LinearLayoutandroid:id="@+id/ll_2_name1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:layout_marginBottom="10dp"><TextViewandroid:id="@+id/item_name"android:layout_width="190dp"android:layout_height="25dp"android:text="刘婧"android:textSize="20sp"android:textColor="#000000" /></LinearLayout><LinearLayoutandroid:id="@+id/ll_2_message"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"><TextViewandroid:id="@+id/item_message"android:layout_width="190dp"android:layout_height="25dp"android:text="我们一起出去玩吧"android:textSize="20sp"android:textColor="#000000" /></LinearLayout></LinearLayout>
</LinearLayout>

fragment_weixin.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="horizontal"><androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/recyclerview"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_margin="8dp" /></LinearLayout>

item_dowm.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#ffffff"><!--左侧的图片布局盒子--><LinearLayoutandroid:id="@+id/ll_1"android:layout_width="wrap_content"android:layout_height="125dp"android:gravity="center"><ImageViewandroid:id="@+id/item_img"android:layout_width="100dp"android:layout_height="100dp"android:layout_margin="10dp"android:src="@drawable/friend_a"android:background="#DFDFDF"/></LinearLayout><!--右侧文字盒子布局--><LinearLayoutandroid:id="@+id/ll_2_name"android:layout_width="match_parent"android:layout_height="125dp"android:orientation="vertical"><!--名字TextView所在盒子布局--><LinearLayoutandroid:id="@+id/ll_2_name1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:layout_marginBottom="10dp"><TextViewandroid:id="@+id/item_name"android:layout_width="190dp"android:layout_height="25dp"android:text=""android:textSize="20sp"android:textColor="#000000" /></LinearLayout><LinearLayoutandroid:id="@+id/ll_2_message"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"><TextViewandroid:id="@+id/item_message"android:layout_width="190dp"android:layout_height="25dp"android:text=""android:textSize="20sp"android:textColor="#000000" /></LinearLayout></LinearLayout>
</LinearLayout>

三、运行界面展示

 

 四、源码的代码仓库地址

代码仓库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/68931.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

品牌对比|斐乐 VS 安踏

品牌名:斐乐 品牌类别:服装鞋包类 榜单:品牌声量榜周榜第4名 对比时间:2021-11-12 品牌名:安踏 品牌类别:服装鞋包类 榜单:品牌声量榜周榜第14名 对比时间:2021-11-19 品牌对比仅仅展示 30 天数据对比结果,以下数据来源于西瓜微数,仅供参考。 数据概览对比 根据数据…

品牌对比 | 斐乐 VS 安踏

品牌名&#xff1a;斐乐 品牌类别&#xff1a;服装鞋包类 榜单&#xff1a;品牌声量榜周榜第4名 对比时间&#xff1a;2021-11-12 品牌名&#xff1a;安踏品牌 类别&#xff1a;服装鞋包类 榜单&#xff1a;品牌声量榜周榜第14名 对比时间&#xff1a;2021-11-19 品牌对…

Mark Down学习

Java学习小白博客记录 第一次使用&#xff0c;简单熟悉一下。 字体 粗体 斜体 加粗、斜体 横线 引用 引用 分割线 图片 超链接 翻云覆宇时间线 列表 墨燃楚晚宁 红莲水榭南屏山 表格 姓名角色生日陈飞宇墨燃4.9 代码 public class Main{public static void main(…

Python数据分析高薪实战第四天 构建国产电视剧评分数据集

10 实战&#xff1a;手把手教你构建国产电视剧评分数据集 在前面几讲&#xff0c;我们已经学习完了爬虫技术的三个基础环节&#xff1a;下载数据、提取数据以及保存数据。 今天我们将通过一个综合的实战案例来将之前的内容都串联起来&#xff0c;帮你加深印象&#xff0c;更好…

点燃我温暖你 爱心代码python

大家最近有没有看点燃我&#xff0c;温暖你这部剧&#xff0c;陈飞宇扮演的天才编程少年李峋也太帅了吧&#xff0c;那我们就浅浅复刻一下低配版的爱心吧 效果展示如下 工具软件使用Pycharm运行 新建一个new file love.py import random from math import sin, cos, pi, lo…

用Python制作一个动态爱心效果!

大家好&#xff0c;我是小F&#xff5e; 最近「点燃我&#xff0c;温暖你」这部剧非常火&#xff0c;讲述的是程序员的爱情故事。 其中陈飞宇饰演的男主李峋&#xff0c;在剧中用程序做出的爱心跳动效果&#xff0c;非常炫。 网上各个大佬也是纷纷给出看法&#xff0c;综合就是…

一周热图|陈飞宇成天梭表形象代言人;朱一龙赵丽颖登陆欧舒丹星球;张信哲代言欧宝娱乐...

图片是企业新闻传播的要素之一&#xff0c;优秀的图片使读者能更直观地了解新闻内容。“一周热图”栏目为大家展示每周通过美通社发布的最具代表性的企业新闻图片。 明星 天梭大家庭迎来一位追光前行的少年&#xff0c;他就是 TISSOT 瑞士天梭表全球形象代言人陈飞宇。他对人生…

明星热图|童瑶、周迅、易烊千玺、张新成签约新品牌;李宇春、陈飞宇参加品牌活动...

图片是企业新闻传播的要素之一&#xff0c;优秀的图片使读者能更直观地了解新闻内容。“一周热图”栏目为大家展示每周通过美通社发布的最具代表性的企业新闻图片。 化妆品 奥伦纳素宣布演员童瑶担任“冰白大使”&#xff0c;与中国女性共同见证“破壳焕新”&#xff0c;助力女…

明星热图|王子文、张含韵、白宇等出席品牌活动;刘亦菲、黄晓明、陈飞宇演绎品牌新品...

图片是企业新闻传播的要素之一&#xff0c;优秀的图片使读者能更直观地了解新闻内容。“一周热图”栏目为大家展示每周通过美通社发布的最具代表性的企业新闻图片。 服装 3月27日&#xff0c;新锐女装FUUNNY FEELLN仿佛品牌代言人王子文空降上海新世界大丸百货品牌门店&#xf…

陈飞宇、赖冠霖亮相巴黎欧莱雅青春密码奇境工厂

2019年11月13日至11月16日&#xff0c;欧莱雅青春密码奇境工厂在北京三里屯限时开张&#xff0c;首次向消费者揭开欧莱雅黑精华的神秘面纱。巴黎欧莱雅品牌千禧大使陈飞宇、品牌大使赖冠霖更是现身活动现场&#xff0c;带大家一同破译肌肤年轻的密码。 巴黎欧莱雅品牌千禧大使陈…

爱心代码(web前端)陈飞宇李峋同款【容易操作】

文章目录 前言一、效果图二、操作步骤第一步第二步第三步第四步第五步第六步 源码 前言 最近随着电视剧《点燃我温暖你》的火热播出&#xff0c;剧中帅气学霸李洵的炫酷爱心代码也迅速火出了圈&#xff0c;爱心素材也异常火爆&#xff0c;我在这里整理了一份大家有需自取哦~ 可…

爱心代码(web前端)陈飞宇李峋同款

文章目录 前言一、效果图二、操作步骤第一步第二步第三步第四步第五步第六步 源码 前言 最近随着电视剧《点燃我温暖你》的火热播出&#xff0c;剧中帅气学霸李洵的炫酷爱心代码也迅速火出了圈&#xff0c;爱心素材也异常火爆&#xff0c;我在这里整理了一份大家有需自取哦~ 可…

李峋陈飞宇同款爱心-怦然心动

“喜欢就是爱&#xff0c; 就是愿意和他站在一起面对所有的困难” &#x1f351;作者&#xff1a;小赛毛 &#x1f495;文章初次日期&#xff1a;2022/11/9 相信各位基友们这几天都会被家里面小仙女姐姐们询问你弄那个爱心❤没&#xff1f; 这时候可能兄弟就要疑惑了&#xf…

英语四级议论文的基本万能模板

“名言类”议论文的基本框架 开头段&#xff1a;①引出主题 ②表明立场 主题段&#xff1a;论证主题 结尾段&#xff1a;①重申立场 ②建议 题目&#xff1a;You can cite examples to illustrate the importance of paying attention to others opinions.主体段中文思路小结 …

材料写作素材:关于“大”排比句40例

1.一轮思想政治“大督查”&#xff0c;一轮政策落实“大检查”&#xff0c;一次非公企业“大走访”&#xff0c;一次问题线索“大起底”&#xff0c;一批典型案例“大曝光”。 2.在重大风险挑战面前豁得出去、顶得上去&#xff0c;在重大困难考验面前迎难而上、敢于胜利&#…

泰安柒柒:ChatGPT能否取代程序员?

ChatGPT是一个强大的语言模型&#xff0c;被广泛应用于自然语言处理领域&#xff0c;它可以完成各种文本相关的任务&#xff0c;例如文本生成、翻译、摘要等。那么&#xff0c;ChatGPT能否取代程序员呢&#xff1f; 我们来分析一下&#xff1a; 第一、ChatGPT和程序员的工作内容…

跳过百度网盘客户端快速下载

我们用百度云下载大文件的时候&#xff0c;需要启动客户端&#xff0c;十分麻烦&#xff0c;甚至有的人还一度去买百度云网盘的会员&#xff0c; 今天分享一个利用浏览器插件&#xff08;Tampermonkey&#xff09;跳过客户端快速下载的方法。 Tampermonkey 是一款免费的浏览器…

五分钟免费注册美区Apple ID

这篇文章免费教大家注册一个非常稳定的美区 Apple ID。 我通过该方法注册过两个美区账号&#xff0c;还冲了钱&#xff0c;到目前已经使用两年了&#xff0c;没出现任何问题稳的很。 话不多说&#xff0c;教程开始&#xff0c;只要跟着我的步骤走&#xff0c;百分百能成功。 一…

从 Windows 切换到 Mac,不能错过这9条Tips

作者 | Cathal Mac Donnacha 、译者 | 弯月 我原本是一名 Windows 的粉丝&#xff0c;从 10 岁起就开始在家学习编程&#xff0c;而后又从事了 8 年多的前端开发&#xff0c;这期间使用的都是 Windows。然而&#xff0c;最近我换了一份工作&#xff0c;新公司给了我一台 MacBoo…

「实用」打造自我感觉非常漂亮的Mac终端

背景 &#xff08;今天我是一个美妆博主&#x1f60a;&#xff09; 突然发现自己使用的iterm2终端样式有些朴素&#xff0c;为了让她看起来花枝招展的&#xff0c;我决定给她打扮打扮。毕竟每天面对她的时间比对象还多…… 效果对比 因为每个人的喜好都不一样&#xff0c;所以…