【Android】Exam5 ListView组件简单应用

news2024/11/24 10:40:04

Exam5 ListView组件简单应用

ListView组件简单应用

  • Exam5 ListView组件简单应用
    • 目的
    • 实验内容及实验步骤
      • 采用SimpleAdapter
      • 自定义Adapter
      • 运行及结果:
      • 实验总结

目的

掌握常用的UI布局及组件;
掌握使用Intent启动Activity的方法
掌握ListView组件的简单应用

实验内容及实验步骤

采用ListView+数据适配器实现下图所示的美食图文列表功能,需求如下:
1、采用图文列表界面,每行显示一个美食信息,包括图片、名称、描述三项信息,名称及描述文字采用合适的字号及颜色。
2、点击列表中的一行,打开美食详情页面显示该行的美食信息详情
3、分别使用SimpleAdapter及自定义Adapter实现

采用SimpleAdapter

MainActivity.java**

package com.example.test;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.media.Image;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
    List<Map<String,Object>> list;
    ListView listviewFoods;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listviewFoods = findViewById(R.id.listViewFoods);

        final String[] name = new String[]{"小笼包子","北京烤鸭"};
        final String[] message =  new String[]
                {"小笼包,本称小笼馒头 [7]  ,是中国著名的汉族传统面点小吃 [6]  ,最早出现于清代同治年间的江苏省常州府一带",
                "北京烤鸭是具有世界声誉的北京著名菜,起源于中国南北朝时期"

        };
        final String[] desc = new String[]{"香喷喷","非常美味"};
        final int[] photo = new int[]{R.drawable.foods1,R.drawable.foods_2};



            list = new ArrayList<Map<String, Object>>();
            for(int i=0;i< name.length;i++)
            {
                Map<String,Object> map1 = new HashMap<String,Object>();
                map1.put("desc",desc[i]);
                map1.put("imgId",photo[i]);
                map1.put("title",name[i]);

                list.add(map1);
            }



        SimpleAdapter adapter = new SimpleAdapter(this,list,R.layout.foods_item,new String[]{"title","imgId","desc"},new int[]{
                R.id.textViewTitle,R.id.imageView,R.id.textViewDesc
        });

        listviewFoods.setAdapter(adapter);

        listviewFoods.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//                String title = list.get(i).get("title").toString();
//                Toast.makeText(MainActivity.this, title, Toast.LENGTH_SHORT).show();
                    Bundle bundle = new Bundle();
                    bundle.putString("message",message[i]);
                  Intent intent = new Intent(MainActivity.this,MainActivity2.class);
                  intent.putExtras(bundle);
                  Log.i("message",message[i]);
          				startActivity(intent);

            }
        });
    }




}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ListView
        android:id="@+id/listViewFoods"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity2.java

package com.example.test;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        Bundle bundle = getIntent().getExtras();
        String message = bundle.getString("message");
        TextView textView = findViewById(R.id.textView3);
        textView.setText(message);
    }
}

activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity2">

    <TextView
        android:id="@+id/textView3"
        android:layout_width="330dp"
        android:layout_height="147dp"
        android:layout_marginStart="125dp"
        android:layout_marginEnd="125dp"
        android:text="TextView"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.502"
        app:layout_constraintStart_toStartOf="parent"

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ListView
        android:id="@+id/listViewFoods"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

activity_main2.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity2">

    <TextView
        android:id="@+id/textView3"
        android:layout_width="330dp"
        android:layout_height="147dp"
        android:layout_marginStart="125dp"
        android:layout_marginEnd="125dp"
        android:text="TextView"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.502"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.448" />

</androidx.constraintlayout.widget.ConstraintLayout>

foods_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="435dp"
        android:layout_height="182dp"
        android:layout_weight="1"
        tools:srcCompat="@tools:sample/avatars[0]" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:id="@+id/textViewTitle"
            android:layout_width="match_parent"
            android:layout_height="58dp"
            android:text="TextView"
            android:textSize="20sp" />

        <TextView
            android:id="@+id/textViewDesc"
            android:layout_width="match_parent"
            android:layout_height="69dp"
            android:text="TextView"
            android:textSize="20sp" />
    </LinearLayout>
</LinearLayout>

自定义Adapter

FoodsAdapter.java

package com.example.test2;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;


import java.util.List;

public class FoodsAdapter extends BaseAdapter {
    private Context context;
    private ListView listView;
    private List<FoodsInfo> goodsList;

    public FoodsAdapter(Context context, ListView listView) {
        this.context = context;
        this.listView = listView;
    }

    public void setData(List<FoodsInfo> data){
        goodsList = data;
        //this.notifyDataSetChanged();
        //listView.setSelection(listView.getSelectedItemPosition());
    }

    @Override
    public int getCount() {
        return goodsList.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
 }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        convertView = View.inflate(context, R.layout.foods_item,null);
        ViewHolder viewHolder = new ViewHolder(convertView);
        FoodsInfo foodsInfo = goodsList.get(position);
        viewHolder.img.setImageResource(foodsInfo.getImgId());
        viewHolder.title.setText(foodsInfo.getTitle());
        viewHolder.desc.setText(foodsInfo.getDesc());
        return convertView;
    }

    static class ViewHolder {
        View baseView;
        TextView title;
        TextView desc;
        ImageView img;

        public ViewHolder(View itemView) {
            this.baseView = itemView;
            this.title = (TextView) baseView.findViewById(R.id.textViewTitle);
            this.desc = (TextView) baseView.findViewById(R.id.textViewDesc);
            this.img = (ImageView)baseView.findViewById(R.id.imageView);
        }
    }
}

FoodsInfo.java

package com.example.test2;

public class FoodsInfo {
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
  }

    public int getImgId() {
        return imgId;
    }

    public void setImgId(int imgId) {
        this.imgId = imgId;
    }

    private String title;
    private  int imgId;

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    private String desc;

}

MainActivity.java

package com.example.test2;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    List<FoodsInfo> list;
 ListView listView;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView=findViewById(R.id.listfood);


        final String[] name = new String[]{"小笼包子","北京烤鸭"};
        final String[] message =  new String[]
                {"小笼包,本称小笼馒头 [7]  ,是中国著名的汉族传统面点小吃 [6]  ,最早出现于清代同治年间的江苏省常州府一带",
                        "北京烤鸭是具有世界声誉的北京著名菜,起源于中国南北朝时期"

                };
        final String[] desc = new String[]{"香喷喷","非常美味"};
        final int[] photo = new int[]{R.drawable.foods1,R.drawable.foods_2};

        list=new ArrayList<FoodsInfo>();
        for(int i=0;i< name.length;i++)
        {
            FoodsInfo foodsInfo = new FoodsInfo();
            foodsInfo.setTitle(name[i]);
            foodsInfo.setDesc(desc[i]);
            foodsInfo.setImgId(photo[i]);
            list.add(foodsInfo);
        }

        FoodsAdapter adapter =new FoodsAdapter(this,listView);
        adapter.setData(list);

        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Bundle bundle = new Bundle();
                bundle.putString("message",message[i]);
                Intent intent = new Intent(MainActivity.this,MainActivity2.class);
                intent.putExtras(bundle);
                Log.i("message",message[i]);
                startActivity(intent);
            }
        });




    }



    }

MainActivity2.java

package com.example.test2;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        Bundle bundle = getIntent().getExtras();
        int id = bundle.getInt("photo");
        String message = bundle.getString("message");
        TextView textView = findViewById(R.id.textView);
        textView.setText(message);
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/listViewFoods"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ListView
        android:id="@+id/listfood"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity2">

    <TextView
        android:id="@+id/textView"
        android:layout_width="317dp"
        android:layout_height="225dp"
        android:text="TextView"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.393"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.369" />
</androidx.constraintlayout.widget.ConstraintLayout>

Foods_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="277dp"
        android:layout_height="175dp"
        android:layout_weight="1"
        tools:srcCompat="@tools:sample/avatars" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:id="@+id/textViewTitle"
            android:layout_width="match_parent"
            android:layout_height="85dp"
            android:text="TextView"
            android:textSize="20sp" />

        <TextView
            android:id="@+id/textViewDesc"
            android:layout_width="match_parent"
            android:layout_height="94dp"
            android:text="TextView"
            android:textSize="20sp" />
    </LinearLayout>
</LinearLayout>

运行及结果:

在这里插入图片描述

实验总结

(1)SimpleAdapter实现图文ListView:
1、使用步骤。
定义一个集合来存放ListView中item的内容;
定义一个item的布局文件;
创建一个 SimpleAdapter 对象;
通过ListView的setAdapter()
方法绑定 SimpleAdapter
(2)BaseAdapter自定义适配器实现ListView:
1、使用步骤
定义一个集合来存放ListView中item的内容;
定义一个item的布局文件;
定义一个 继承了BaseAdapter的子类MyAdapter,重写未实现的方法;(定义ViewHolder,重写getView()方法)
通过ListView的setAdapter()方法绑定自定义的MyAdapter对象 。
(3)注意写入存储数据和输出数据的代码顺序,要先写存,再输出,不然会出现空指针错误。
(4)取数据数组长度使用.length方法,注意没有括号
(5)Bundle的作用主要时用于传递数据。Bundle传递的数据包
括:string、int、boolean、byte、float、long、double等基本类型或它们对应的数组,也可以是对象或对象数组。当Bundle传递的是对象或对象数组时,必须实现Serialiable或Parcelable接口。
Bundle所保存的数据是以key-value(键值对)的形式保存在ArrayMap中

//把Bundle容器中的数据放到Intent中
intent.putExtras(bundle);
Intent intent = getIntent();
 //从Intent中取出Bundle
 Bundle bundle = intent.getExtras();
 //获取FunPerson里的数据数据

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是微服务中的熔断器设计模式?

在本文中&#xff0c;我将解释什么是熔断器设计模式以及它解决了什么问题。 我们将仔细研究熔断器设计模式&#xff0c;并探讨如何使用Spring Cloud Netflix Hystrix在Java中实现它。到本文结束时&#xff0c;您将更好地了解如何使用熔断器设计模式提高微服务架构的弹性。 熔断…

创建基于oracle jdk8的自定义docker镜像

创建基于oracle jdk8的自定义docker镜像 1:查看服务器java版本&#xff1a; 如果服务器的版本是open-jdk&#xff0c;则进行如下操作 拷贝相关jdk压缩包&#xff08;.tar.gz后缀&#xff09;到服务器目录&#xff08;例&#xff1a;/usr/local&#xff09; 解压&#xff1a;…

Liunx基础命令 - ls命令

ls命令 – 显示目录中文件及其属性信息 ls命令来自英文单词”list“的缩写&#xff0c;中文译为“列出”&#xff0c;其功能是用于显示目录中文件及其属性信息&#xff0c;是最常被使用到的Linux命令之一。 默认不添加任何参数的情况下&#xff0c;ls命令会列出当前工作目录中的…

Servlet编程---Day 04

一、HttpServletRequest (请求对象) &#xff08;一&#xff09;HttpServletRequest对象 HttpServletRequest对象是 tomcat 为我们封装的对象 HttpServletRequest是 ServletRequest 接口的子接口 , 专门做 http 协议的请求对象 &#xff08;二&#xff09;常用方法 //设置…

Python3: 扫描库文件并获取版本号信息

文章目录 1. 目的2. 原理Linux: strings 命令Windows: strings 命令 3. 基于 Python 实现 strings 命令4. 基于Python的版本号查找5. 最终调用&#xff1a;一句话使用 1. 目的 在 C/C 开发中使用了第三方库&#xff0c;具体说是 .a, .lib, .dll 等文件&#xff0c;想通过 Pyth…

C++: 通过CMake配置AddressSanitizer并执行内存泄漏和越界检查

文章目录 1. 目的2. 区分编译和链接选项3. 在CMake中全局开启ASan1. 目的 在 C/C++ 工程中, 得益于 Google 工程师开发的 Address Sanitizer 这一神器, 可以快速、准确的发现不规范的内存使用, 包括而不限于: 内存泄漏检查, 例如忘记释放, 或原本持有内存的的指针被赋予…

[230522] 托福阅读词汇题 |持续更新|5月15日

infiniteimmensevast breakthroughdiscovery pivotalessential perceivedapparent 明显的 statutorilylegally 法律上 triggerprompt 引发 adolescentyouthful 青少年的 theorizedproposed 提出 replenishrenew 补充 prospersucceed pursueresearch signalindicate …

WPF MaterialDesign 初学项目实战(4)侧边栏路由管理

原视频内容 WPF项目实战合集(2022终结版) 24P 其他内容 WPF MaterialDesign 初学项目实战&#xff08;0&#xff09;:github 项目Demo运行 WPF MaterialDesign 初学项目实战&#xff08;1&#xff09;首页搭建 WPF MaterialDesign 初学项目实战&#xff08;2&#xff09;首…

ESLint配置详解

ESLint配置详解 ESLint 是一个代码检查工具&#xff0c;用来检查代码是否符合指定的规范&#xff0c;防止在多人协作开发时代码格式不统一。 安装 全局安装 npm install eslint -g当前项目安装 npm install eslint -D安装之后运行eslint --init进行初始化&#xff0c;使用…

你真的理解分布式数据的分区吗?

分布式数据存储是指将数据分散存储在多个节点或服务器上的技术。而分区是将数据划分为逻辑上的片段或部分&#xff0c;每个分区可以在分布式系统中的不同节点上存储。分区主要是为了可扩展性。不同的分区可以放在不共享集群中的不同节点上&#xff0c;可以帮助实现负载均衡、高…

玩转Google开源C++单元测试框架Google Test系列(gtest)之四 - 参数化

一、前言 在设计测试案例时&#xff0c;经常需要考虑给被测函数传入不同的值的情况。我们之前的做法通常是写一个通用方法&#xff0c;然后编写在测试案例调用它。即使使用了通用方法&#xff0c;这样的工作也是有很多重复性的&#xff0c;程序员都懒&#xff0c;都希望能够少…

Liunx基础命令 - cd命令

cd命令 – 切换目录 cd命令来自英文词组“change directory”的缩写&#xff0c;其功能是用于更改当前所处的工作目录&#xff0c;路径可以是绝对路径&#xff0c;也可以是相对路径&#xff0c;若省略不写则会跳转至当前使用者的家目录。 **语法格式&#xff1a;**cd [参数] …

VMware Workstation 17 Pro安装配置CentOS 7与ssh工具链接配置

VMware Workstation 17 Pro安装配置CentOS 7与ssh工具链接配置 下载安装虚拟机VMware Workstation 17 Pro 虚拟机官网&#xff1a;点击直达 下载Cent os 7 镜像文件 123网盘地址&#xff1a;点击直达 提取码1213 在虚拟机中安装Cent os 7 第一步 点击 创建新的虚拟机 第二步 默…

解释什么是蓝绿发布?

蓝绿发布(Blue-green release)是一种软件部署策略&#xff0c;主要用于应对新版本软件在生产环境中的测试和部署。这种策略将新版本软件分为两个阶段&#xff1a;蓝色阶段和绿色阶段。蓝色阶段通常在开发和测试环境中进行&#xff0c;而绿色阶段则在生产环境中进行。 蓝色阶段…

C语言运算符:赋值与计算

目录 赋值运算符 算术运算符 赋值运算符 下表列出了 C 语言支持的赋值运算符&#xff1a; 运算符描述实例简单的赋值运算符&#xff0c;把右边操作数的值赋给左边操作数C A B 将把 A B 的值赋给 C加且赋值运算符&#xff0c;把右边操作数加上左边操作数的结果赋值给左边操…

C语言基础知识:关系运算符与逻辑运算符

目录 1、关系运算符介绍 2、应用示例 3、逻辑运算符介绍 4、逻辑表达式的书写 5、不得不说的逻辑非 1、关系运算符介绍 关系运算&#xff08;Relational Operators&#xff09;&#xff0c;用于判断条件&#xff0c;决定程序的流程。 关系数学中的表示C语言的表示小于&l…

GPT神奇应用:生成菜谱

正文共 662 字&#xff0c;阅读大约需要 2 分钟 料理新手/爱好者必备技巧&#xff0c;您将在2分钟后获得以下超能力&#xff1a; 快速生成菜谱 Beezy评级 &#xff1a;B级 *经过简单的寻找&#xff0c; 大部分人能立刻掌握。主要节省时间。 推荐人 | Kim 编辑者 | Linda ●图…

VMWare 虚拟机创建 + 初始化

目录 概述 1. VMware创建虚拟机 2. IP 配置 nmtui nmcli 3. Yum 源配置 光盘的Packages作为Yum源 配置开机自动挂载(光盘) 配置私有Yum仓库 跟新私有yum仓库 报错和修复 4. 文件共享系统配置 跟新配置文件/etc/hosts /etc/yum.repo.d/ftp.repo 同步配置文件 测试…

HLS入门实现一个led灯的闪烁

文章目录 前言一、HLS是什么&#xff1f;与VHDL/Verilog编程技术有什么关系?1、HLS简介2、开发流程3、HLS与VHDL/Verilog编程技术有什么关系? 二、2. HLS有哪些关键技术问题&#xff1f;目前存在什么技术局限性&#xff1f;1.关键技术问题2、技术局限性 三、使用 HLS 完成 le…

第十二章创建模式—享元模式

文章目录 享元模式概述结构 实例优缺点和使用场景使用场景JDK源码解析 结构型模式描述如何将类或对象按某种布局组成更大的结构&#xff0c;有以下两种&#xff1a; 类结构型模式&#xff1a;采用继承机制来组织接口和类。 对象结构型模式&#xff1a;釆用组合或聚合来组合对象…