Android--- UI组件AdapterView and 适配器Adapter

2023-11-16

适配器 – Adapter

  • Adapter是UI控件和实际数据之间的桥梁,通过adapter将数据展示到UI上
  • Adapter本身只是一个接口,Adapter及其子类的继承关系图
    在这里插入图片描述
  • Adapter常用的实现类如下。
  • ArrayAdapter: 简单、易用的Adapter。通常用于将数组或List集合的多个值包装成多个列表项。
  • SimpleAdapter: 并不简单、功能强大的Adapter.可用于将List集合的多个对象包装成多个列表项。
  • SimpleCursorAdapter: 与SimpleAdapter基本相似,只是用于包装Cursor提供的数据。
  • BaseAdapter: 通常用于被扩展。扩展BaseAdapter可以对各列表项进行最大限度的定制。

UI控件 – AdapterView

  • AdapterView是常用的安卓UI控件
  • AdapterView继承了ViewGroup.它的本质是容器。
  • AdapterView显示的多个“列表项”由Adapter提供。调用AdapterView的**setAdapter(Adapter)**方法设置Adapter即可
  • Adapter是UI控件和实际数据之间的桥梁,通过adapter将数据展示到UI上
  • AdapterView是一个抽象类, 具体继承关系如下
    在这里插入图片描述
  • 常用的实体类为第四行, 注意Gallery已经被淘汰, 可以用HorizontalScrollView
  • ListView也可用RecyclerView替代

ListView

简单的ListView实现

定义一个item布局文件(list中的每一项) – list_item.xml

<?xml version="1.0" encoding="UTF-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textSize="24sp"
    android:id = "@+id/listItem"
    >
</TextView>

定义一个listView布局文件 – list_view.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:orientation="vertical"
    android:gravity="center">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/myList"/>

</LinearLayout>

*在这里插入图片描述

使用Adapter

package com.example.homework2;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Point;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

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

        Display display = getWindowManager().getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        int height = size.y;

        String[] items = new String[]{"Apple", "Mongo", "Pear", "Grape", "Banana", "Strawberry", "Blackberry", "Raspberry", "Peach", "Watermelon", "Cherry", "DragonFruit"};
        final ArrayList<String> list = new ArrayList<>();

        for (int i = 0; i < items.length; i++) {
            list.add(items[i]);
        }

        ListView listview = findViewById(R.id.myList);
        listview.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, list) {
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View view = super.getView(position, convertView, parent);
                TextView textView = (view.findViewById(R.id.listItem));
                textView.setMinHeight(0);
                textView.setMinimumHeight(0);
                textView.setHeight(height/ items.length);
                return view;
            }
        });
}

输出结果

在这里插入图片描述

图文ListView实现

定义一个listView布局文件

<?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:orientation="vertical"
    android:gravity="center">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/lv1"
        android:drawSelectorOnTop="true" />
        
</LinearLayout>
————————————————
版权声明:本文为CSDN博主「0x2015」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/w57685321/article/details/78267051

**定义一个item布局文件(list中的每一项) **

<?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">
    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingStart="10dp"
        android:adjustViewBounds="true"
        android:maxWidth="100dp"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView
            android:id="@+id/author"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>
————————————————
版权声明:本文为CSDN博主「0x2015」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/w57685321/article/details/78267051

创建一个Simple Adapter, 将数据绑定到UI

package com.example.admin.test3;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

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

public class Test2Activity extends AppCompatActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test2);
        //获取布局中的ListView
        final ListView lv1 = (ListView)findViewById(R.id.lv1);
        //获取图片资源文件
        int [] images = new int[]{R.drawable.img4,R.drawable.img5,R.drawable.img6,R.drawable.img7};
        String []title = new String[]{"实战大数据——","白话深度学习与","Unity 3D\\2D手机游戏开发:从学习","Web前端自动化构"};
        String []author = new String[]{"许国根,贾瑛","高扬","金玺曾","[澳]斯特凡·鲍姆加"};
        //将上面的数据添加到List集合中
        List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>();
        for(int i=0;i<title.length;i++){
            //每一行数据都是一个Object,然后存入Map中,String自己指定
            Map<String,Object> map = new HashMap<String,Object>();
            map.put("img",images[i]);
            map.put("title",title[i]);
            map.put("author",author[i]);
            listItems.add(map);
        }
        //关键的SimpleAdapter
        /* 关于SimpleAdapter,使用SimpleAdapter的最大难点在于创建SimpleAdapter对象,它需要5个参数:
		>* 第一个参数:上下文,这个不用多说,写this即可。
		>* 第二个参数:该参数应该是一个 List< Map> 类型的集合对象,该集合中每个Map<String>对象生成一个列表项。
		>* 第三个参数:该参数指定一个界面布局的ID,这里使用的自己创建的xml布局文件。
		>* 第四个参数:该参数是一个String[]类型的参数,该参数决定提取Map对象中哪些key对应的value来生成列表项,所以填写map.put(key,Value)对应的key即可。
		>* 第五个参数:该参数是一个int[]类型的参数,该参数决定填充哪些组件,填写自定义的xml布局文件中控件的ID即可,相当于把第四个参数指定的数据填充到第五个控件指定的控件中,与第四个参数形成对应关系*/
        SimpleAdapter adapter = new SimpleAdapter(
                					this,
                					listItems,
                					R.layout.simpleadaitem,
                					new String[]{"img","title","author"},
                					new int[]{R.id.img,R.id.title, R.id.author});
        lv1.setAdapter(adapter);
    }
}
————————————————
版权声明:本文为CSDN博主「0x2015」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/w57685321/article/details/78267051

在这里插入图片描述

ListView的监听函数

OnItemClickListener – 可以处理视图中单个条目的点击事件

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String selectedItem = (String) parent.getItemAtPosition(position);
                Intent intent = new Intent(view.getContext(), WebActivity.class);
                intent.putExtra("item_name", selectedItem);
                startActivity (intent);
            }
        });

OnScrollListener – ListView的滚动事件,监听滚动事件,可以做到下拉刷新,下拉显示更多列表的操作

 lv1.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView absListView, int i) {
                switch(i){
                    case SCROLL_STATE_FLING:
                        Log.i("Main", "用户在手指离开屏幕之前,由于用力滑了一下,视图仍在滚动");
                        break;
                    case SCROLL_STATE_IDLE:
                        Log.i("Main", "视图已经停止滚动");
                        break;
                    case SCROLL_STATE_TOUCH_SCROLL:
                        Log.i("Main", "手指没有离开屏幕,视图正在滑动");
                        break;
                }
            }
            @Override
            public void onScroll(AbsListView absListView, int i, int i1, int i2) {

            }
        });
————————————————
版权声明:本文为CSDN博主「0x2015」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/w57685321/article/details/78267051

ExpandableListView

GridView

创建一个GridView布局文件

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    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=".MainActivity">
 
    <!-- android:numColumns=2 is the number of columns for Grid View
         android:horizontalSpacing is the space between horizontal
         grid items.-->
    <GridView
        android:id="@+id/idGVcourses"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:horizontalSpacing="6dp"
        android:numColumns="2"
        android:verticalSpacing="6dp" />
 
</androidx.constraintlayout.widget.ConstraintLayout>

创建每个item的布局文件

<?xml version="1.0" encoding="utf-8"?>
<!--XML implementation of Card Layout-->
<androidx.cardview.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:layout_gravity="center"
    android:layout_margin="5dp"
    app:cardCornerRadius="5dp"
    app:cardElevation="5dp">
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
 
        <ImageView
            android:id="@+id/idIVcourse"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_gravity="center"
            android:src="@mipmap/ic_launcher" />
 
        <TextView
            android:id="@+id/idTVCourse"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/app_name"
            android:textAlignment="center" />
 
    </LinearLayout>
 
</androidx.cardview.widget.CardView>

创建一个Modal类用来储存数据

public class CourseModel {
 
    // string course_name for storing course_name
    // and imgid for storing image id.
    private String course_name;
    private int imgid;
 
    public CourseModel(String course_name, int imgid) {
        this.course_name = course_name;
        this.imgid = imgid;
    }
 
    public String getCourse_name() {
        return course_name;
    }
 
    public void setCourse_name(String course_name) {
        this.course_name = course_name;
    }
 
    public int getImgid() {
        return imgid;
    }
 
    public void setImgid(int imgid) {
        this.imgid = imgid;
    }
}

创建一个Adapter, extend ArrayAdapter

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;
 
public class CourseGVAdapter extends ArrayAdapter<CourseModel> {
    public CourseGVAdapter(@NonNull Context context, ArrayList<CourseModel> courseModelArrayList) {
        super(context, 0, courseModelArrayList);
    }
 
    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        View listitemView = convertView;
        if (listitemView == null) {
            // Layout Inflater inflates each item to be displayed in GridView.
            listitemView = LayoutInflater.from(getContext()).inflate(R.layout.card_item, parent, false);
        }
        CourseModel courseModel = getItem(position);
        TextView courseTV = listitemView.findViewById(R.id.idTVCourse);
        ImageView courseIV = listitemView.findViewById(R.id.idIVcourse);
        courseTV.setText(courseModel.getCourse_name());
        courseIV.setImageResource(courseModel.getImgid());
        return listitemView;
    }
}

使用Adapter

import android.os.Bundle;
import android.widget.GridView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
 
public class MainActivity extends AppCompatActivity {
 
    GridView coursesGV;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        coursesGV = findViewById(R.id.idGVcourses);
       
        ArrayList<CourseModel> courseModelArrayList = new ArrayList<CourseModel>();
        courseModelArrayList.add(new CourseModel("DSA", R.drawable.ic_gfglogo));
        courseModelArrayList.add(new CourseModel("JAVA", R.drawable.ic_gfglogo));
        courseModelArrayList.add(new CourseModel("C++", R.drawable.ic_gfglogo));
        courseModelArrayList.add(new CourseModel("Python", R.drawable.ic_gfglogo));
        courseModelArrayList.add(new CourseModel("Javascript", R.drawable.ic_gfglogo));
        courseModelArrayList.add(new CourseModel("DSA", R.drawable.ic_gfglogo));
 
        CourseGVAdapter adapter = new CourseGVAdapter(this, courseModelArrayList);
        coursesGV.setAdapter(adapter);
    }
}

在这里插入图片描述

Spinner

创建布局文件

<?xml version="1.0" encoding="utf-8"?>
<!--Constraint layout which contain Spinner widget-->
 
<android.support.constraint.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="com.geeksforgeeks.Spinner.MainActivity">
 
    <!--Spinner widget-->
    <Spinner
        android:id="@+id/coursesspinner"
        android:layout_height="50dp"
        android:layout_width="160dp"
        android:layout_marginEnd="10dp"
        android:layout_marginStart="10dp"   
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>
   
</android.support.constraint.ConstraintLayout>

创建Java文件

import android.support.v7.app.AppCompatActivity;
import android.widget.AdapterView;
import android.view.View;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.os.Bundle;
 
// Main Activity implements Adapter view
public class MainActivity
    extends AppCompatActivity
    implements AdapterView.OnItemSelectedListener {
 
    // create array of Strings
    // and store name of courses
    String[] courses = { "C", "Data structures",
                        "Interview prep", "Algorithms",
                        "DSA with java", "OS" };
 
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        // Take the instance of Spinner and
        // apply OnItemSelectedListener on it which
        // tells which item of spinner is clicked
        Spinner spino = findViewById(R.id.coursesspinner);
        spin.setOnItemSelectedListener(this);
 
        // Create the instance of ArrayAdapter
        // having the list of courses
        ArrayAdapter ad = new ArrayAdapter(
                		  this,
               			  android.R.layout.simple_spinner_item,
                		  courses);
 
        // set simple layout resource file
        // for each item of spinner, a simple text view 
        ad.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spino.setAdapter(ad);
    }
 
    // Performing action when ItemSelected
    // from spinner, Overriding onItemSelected method
    @Override
    public void onItemSelected(AdapterView<*> arg0, View arg1, int position, long id) {
        // make toastof name of course
        Toast.makeText(getApplicationContext(), courses[position], Toast.LENGTH_LONG).show();
    }
 
    @Override
    public void onNothingSelected(AdapterView<*> arg0)
    {
        // Auto-generated method stub
    }
}

在这里插入图片描述

AdapterViewFlipper 和 StackView

  • AdapterViewFlipper可以实现画面自动播放
  • SatckView可以实现叠加效果
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android--- UI组件AdapterView and 适配器Adapter 的相关文章

  • 带有自定义阵列适配器的微调器不允许选择项目

    我使用自定义阵列适配器作为微调器 但是 当在下拉列表中选择一个项目时 下拉列表保留在那里 并且微调器不会更新 这是错误行为 与使用带有字符串的通用数组适配器相比 这是自定义类 我错过了什么吗 谢谢 public class Calendar
  • MediaCodec 创建输入表面

    我想使用 MediaCodec 将 Surface 编码为 H 264 使用 API 18 有一种方法可以通过调用 createInputSurface 然后在该表面上绘图来对表面中的内容进行编码 我在 createInputSurface
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • Android相机意图:如何获取全尺寸照片?

    我正在使用意图来启动相机 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE CAPTURE getParent startActivityForR
  • Android构建apk:控制MANIFEST.MF

    Android 构建 APK 假设一个 apk 包含一个库 jar 例如 foo jar 该库具有 META INF MANIFEST MF 这对于它的运行很重要 但在APK中有一个包含签名数据的MANIFEST MF 并且lib jar
  • 如何在不更改手机语言的情况下更改Android应用程序语言?

    我希望用户在应用程序内选择一种语言 选择语言后 我希望字符串使用特定语言 如果我更改手机语言 那么我的应用程序将以设置的语言运行 我无法找到任何在不更改手机语言的情况下设置语言的方法 此外 一旦设置了语言 更改就应该反映出来 有人可以建议一
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 如何创建像谷歌位置历史记录一样的Android时间轴视图?

    我想设计像谷歌位置历史这样的用户界面 我必须为我正在使用的应用程序复制此 UIRecyclerView 每行都是水平的LinearLayout其中包含右侧的图标 线条和视图 该线是一个FrameLayout具有圆形背景和半透明圆圈Views
  • 下载后从谷歌照片库检索图像

    我正在发起从图库中获取照片的意图 当我在图库中使用 Nexus 谷歌照片应用程序时 一切正常 但如果图像不在手机上 在 Google Photos 在线服务上 它会为我下载 选择图像后 我将图像发送到另一个活动进行裁剪 但在下载的情况下 发
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • 当单元格内的 JComboBox 中有 ItemEvent 时,如何获取 CellRow

    我有一个 JTable 其中有一列包含 JComboBox 我有一个附加到 JComboBox 的 ItemListener 它会根据任何更改进行操作 但是 ItemListener 没有获取更改的 ComboBox 所在行的方法 当组合框
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • SharedFlow 和 StateFlow 的主要区别

    两者有什么区别共享流 and 状态流 以及如何使用这些MVI建筑学 使用简单更好吗Flow或者这些作为状态和事件 Flow 是冷的 意味着它仅在收集数据时才发出数据 另外Flow不能保存数据 可以把它看成是水在里面流动的管道 Flow中的数
  • Android:有没有办法以毫安为单位获取设备的电池容量?

    我想获取设备的电池容量来进行一些电池消耗计算 是否可以以某种方式获取它 例如 三星 Galaxy Note 2 的电池容量为 3100mAh 谢谢你的帮助 知道了 在 SDK 中无法直接找到任何内容 但可以使用反射来完成 这是工作代码 pu
  • 为什么Android的ImageReader类这么慢?

    我尝试了适用于 Android 3 4 1 的全新 OpenCVJavaCamera2View但它太慢了 仅显示相机视图约 15 fps 当我尝试较旧的JavaCameraView相反 它给了我很好的结果 30fps 这是我相机的极限 我想
  • 在 Google 地图上绘制线条/路径

    我很长一段时间都在忙于寻找如何在 HelloMapView 中的地图上的两个 GPS 点之间画一条线 但没有运气 谁能告诉我该怎么做 假设我使用扩展 MapView 的 HelloMapView 我需要使用叠加层吗 如果是这样 我是否必须重

随机推荐

  • Rancher 资料收集

    1 是什么 Rancher 是一个全面的企业级容器管理平台 它可以让容器在各种基础设施平台的生产环境上部署和运行更容易 通过Rancher 企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台 Rancher提供了在生产环境中使用的管
  • 批量添加-动态拼接字符串

    字符串拼接主要包括以下三类 第三种方法是今天的重点 Sring format StringBuilder Append 一 对于少量固定的字符串拼接 我们可以简单利用 string s a b c 这样写 系统或优化成如下代码 不会新建多个
  • Python 基于循环神经网络的情感分类系统设计与实现,附可视化界面.

    1 简介 循环神经网络是一种能够有效处理序列数据的深度学习模型 在情感分类任务中具有广泛的应用 因此开发环节采用了GRU框架作为循环神经网络的实现模型 开发完成的情感分类系统能够自动识别用户的留言情感分类 将留言有效区分为积极或消极 并且在
  • python操作excel文件的构建

    一 使用python构建txt文件 1 应用 做最大字符长度检验 需要构架一定数量的数据 如100 200 对象 open 文件名 打开方式 encoding utf 8 with open 文件名 打开方式 encoding utf 8
  • java -jar 远程调试_Java Remote Debug(idea远程调试)

    概述 对于分布式系统的调试不知道大家有什么好的方法 对于我来说 在知道远程调试这个方法之前就是在代码中打各种log 然后重新部署 上线 调试 这样比较费时 今天咱们来了解了解Java远程调试这个牛逼的功能 本文以Intellij IDEA为
  • 云计算与大数据- 云计算概览练习题及答案

    第1章 云计算概览习题 1 1 选择题 1 下列关于云计算的说法错误的是 D A 可以提供按需使用 按量计费的服务 B 可以满足用户的弹性使用需求 C 用户可以在任意时间和地点通过网络获取所需的资源 D 主要基于非虚拟化资源池 2 以下不属
  • jdbc编程六步

    1 加载驱动 2 获取连接 3 创建预编译对象 4 执行sql 5 处理结果集 6 释放资源
  • 蓝桥杯oj 算法训练 大小写转换

    算法训练 大小写转换 时间限制 1 0s 内存限制 512 0MB 锦囊1 锦囊2 锦囊3 问题描述 编写一个程序 输入一个字符串 长度不超过20 然后把这个字符串内的每一个字符进行大小写变换 即将大写字母变成小写 小写字母变成大写 然后把
  • 数据仓库主题三-(实施篇)

    背景 如何从具体的需求或项目转换为可实施的解决方案 如何进行需求分析 架构设计 详细模型设计等 则是模型实施过程中讨论的内容 业界常用两种数据仓库建设模型思想分为两种kimball和inmon模型 具体的kimball和inmon 模型思想
  • 逻辑设计基础_第1章_初识数字逻辑

    这一个月打算学习数字逻辑设计 刚听完课 现在做一下笔记 第1章 初始数字逻辑 本节知识总结为三个方面 分别是数字逻辑的知识脉络 数字逻辑设计的用途和三种二进制编码 下面分别说明 1 1 数字逻辑的知识脉络 首先 学习逻辑代数 其次 根据逻辑
  • docker容器拷贝

    背景 当前jenkins服务器部署在内网环境 需要迁移到云服务器 版本和配置以及之前安装过的jenkins插件都需要同步迁移 方案1 使用docker commit将当前容器打包成镜像 docker commit contain id co
  • CSR867x — 蓝牙音频发射器方案(支持USB、模拟和SPDIF)

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX 作 者 文化人 XX 联系方式 或进群 471144274 XX 版权声明 原创文章 欢迎评论和转载 转载时能告诉我一声就
  • 傅里叶变换公式整理

    1 一维傅里叶变换 1 1 一维连续傅里叶变换 正变换 F
  • RS485(Modbus RTU)协议

    Modbus是啥 Modbus 是一种串行通信协议 是施耐德电气为使用可编程逻辑控制器 PLC 通信而发布 是工业领域通信协议的业界标准 并且是工业电子设备之间常用的连接方式 读完好像还是不知道是啥 没关系 你只要记住一点 Modbus是与
  • LeetCode初级算法-,买卖股票数组算法

    题目 给定一个数组 prices 其中 prices i 是一支给定股票第 i 天的价格 设计一个算法来计算你所能获取的最大利润 你可以尽可能地完成更多的交易 多次买卖一支股票 JAVA class Solution public int
  • DNS的解析流程,DNS主从配置,使用httpd服务演示安全上下文值的设定(selinux),使用web服务端口的改变来演示端口的设定(selinux)

    DNS的解析流程 一 DNS的解析方式 1 正向解析 正向解析文件中存储的记录称为A记录 A记录记录着域名和IP的映射关系 2 反向解析 反向解析文件中存储的记录称为PTR指针 PTR记录着IP和域名的映射关系 二 DNS域名的分层结构 国
  • OpenCV 二维码定位与识别

    因为二维码本身含有信息 因此可以作为产品的信息载体 如 产品特征 在工业领域常用在产品入库 分拣和包装上 但常常会因为二维码图像污点 光照不均匀以及二维码图像倾斜等原因 使得二维码的识别正确率低 针对这些问题 通过学习贾老师OpenCV课程
  • 数据库查询,返回前5、10行数据

    1 SQLServer sqlserver 支持top关键字 返回前若干条数据 select top 5 from table 返回前5行数据 2 MySQL mysql 支持 limit 只能适用于mysql limit 子句用于强制 s
  • 数据分析学习

    前言 数据分析已经是我们工作离不开的一个东西 其本质上还是基于数据算法对于数据的多维度计算 数据分析概念 数据分析方法
  • Android--- UI组件AdapterView and 适配器Adapter

    Android AdapterView and Adapter 适配器 Adapter UI控件 AdapterView ListView 简单的ListView实现 图文ListView实现 ListView的监听函数 GridView