Android基本控件Spinner的简单使用

【Android studio】spinner控件 Spinner是Android开发中常用的UI控件之一,它是一个下拉列表,可以用来显示多个选项,用户可以通过点击下拉箭头选择其中的一项。Spinner通常用于用户选择一个选项的场景,比如选择性别、选择城市、选择日期等。在布局文件中定义Spinner控件,如: 阅读详情

        学习过了Textview,EditText,ImageView,Button 等简单View控件后,刚一看Spinner感觉有些复杂。显示数据还需要用Adapter。。。认真学习后做简单梳理 :

 


        上面两个图介绍了Spinner显示数据的过程。是MVC模式。Spinner负责显示,Adapter负责将源数据传送到Spinner,Model存放源数据,通常是List<?>集合或者数组。

看实际使用的例子

1.准备需要加载展示的数据源。我定义在了values\Strings.xml中,代码如下:

<resources>
    <string name="app_name">LoginDemo</string>
    <string-array name="log_method">
        <item>QQ登陆</item>
        <item>微信登陆</item>
        <item>手机号登陆</item>
        <item>微博登陆</item>
    </string-array>
</resources>

2.初始化适配器,将数据源加载到适配器中。new 一个适配器是有三个参数,了解一下含义:

context: 上下文对象,当前类.this。resource:表示列表item的布局资源id 默认android.R.layout.simple_spinner_item,logmethod。object:要适配的数据资源。

3.将适配器加载到控件中:

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.TextView;
import android.widget.Toast;

public class LoginActivity extends Activity {
    private Spinner mSp1;
    private String [] logmethod;
    private ArrayAdapter<String> adapter;
    private TextView mTv1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        mSp1 = (Spinner)this.findViewById(R.id.sp);
        mTv1 = (TextView) this.findViewById(R.id.tv);
        //准备要加载的字符串数组资源
        logmethod = getResources().getStringArray(R.array.log_method);
        /*
        * 初始化适配器时各参数
        * context: 上下文对象,当前类.this
        * resource:表示列表item的布局资源id 默认android.R.layout.simple_spinner_item,logmethod
        * object:要适配的数据资源
        * */
        adapter = new ArrayAdapter<String>(LoginActivity.this,android.R.layout.simple_spinner_item,logmethod);
        mSp1.setAdapter(adapter);
        mSp1.setOnItemSelectedListener(new OnItemSelectedListener() {
            /*
            参数详解:
            AdapterView<?> adapterView:触发当前事件的Spinner对象
            View view表示当前备选中的item
            int i:表示当前被选中item的下表
            long l:表示当前被选中item的id
             */

            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
                String s1 = logmethod[position]; //在数据源中获取
                String s2 = adapter.getItem(position); //在适配器中获取
                Toast.makeText(LoginActivity.this,"s1 = "+s1,Toast.LENGTH_LONG);
                mTv1.setText(s1);
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
            }
        });
    }
}

Spinner的定义:

<Spinner
            android:id="@+id/sp"
            android:layout_marginLeft="10dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            ></Spinner>

程序运行效果:




【液晶专题】从外挂到In-Cell/ On-Cell/ OGS再也不会傻傻分不清楚了 触控技术经历了从外挂式到内嵌式的革新,主要方案包括外挂式(Out-Cell)、OGS、On-Cell和In-Cell。 阅读详情

相关推荐

MATLAB PDE工具箱电磁场仿真平行电容板及电偶极子详解

首先打开matlab,在命令行输入pdetool打开PDE工具箱 工具箱的功能我就不赘述了,大概就是以有限元的数值计算方法,计算二阶偏微分方程,因此可以解决电磁场、热力学等问题。 首先点击左上角按钮,画三个矩形 画完一个后可以双击矩形编辑,参数如下: 其中R1表示上极板,R2表示下极板,R3表示整个空间区域。 在上方Set formula为R3-R2-R1,表示求解区域是整个空间区域减去两个极板。下拉框选择Electrostatics表示求解的是静电场问题。 接下来点击上方菜单栏中的这个按钮,表

weixin_42845306的博客 1万+

Android常用控件Spinner的使用(详解)

两种实现Spinner的方法

qq_62079241的博客 1万+

产业大脑+未来工厂:揭秘浙江数字经济系统的5大核心场景搭建指南

本文深入解析了“产业大脑+未来工厂”这一浙江数字经济系统的核心范式,并提供了五大核心场景的实战搭建指南。文章详细阐述了从供应链协同、产能共享到产品创新、质量追溯及绿色低碳等关键场景的构建逻辑与技术架构,旨在帮助企业实现从技术驱动到场景驱动的价值落地,破解数据孤岛难题,提升产业链整体效能。

mac99的博客 667

Android之Spinner使用详解

Spinner(列表选择框)的基本使用 当我们的app需要用户输入数据时,除了让用户自己打字以外,还有一种比较贴心的设计: 列出一组选项让用户从中挑选,从而方便了我们的用户! 一、常用的属性 属性名 作用 android:dropDownHorizontalOffset 设置列表框的水平偏移距离 android:dropDownVerticalOffset 设置列表框的水平竖直距离 android:dropDownSelector 列表框被选中时的背景 android:dropD

Mq_sir的博客 3万+

个人信息保护合规审计人员(高级)能力考核试卷+面试模拟

《个人信息保护合规审计考试与面试指南》 摘要:本文提供个人信息保护合规审计考试及面试的全面指导。考试采用闭卷笔试形式,满分100分,合格线75分,时长120分钟,包含单选、多选、判断题及综合案例分析题。内容涵盖《个人信息保护法》核心条款、审计程序、风险评估等实务要点。面试环节采用情景模拟方式,重点考察应试者在压力下处理审计独立性、客户关系与监管要求的平衡能力,以及应对数据泄露等突发事件的处置流程。案例题聚焦大型互联网平台的数据收集、共享、跨境传输等高风险环节的合规审计,要求设计完整的审计方案框架。面试评分标

qq_41525079的博客 1143

Qwen 三代进化全景对比:从 Qwen2.5 到 Qwen3 再到 Qwen3.5

本文对比了阿里巴巴通义千问三代大模型(Qwen2.5、Qwen3、Qwen3.5)的技术演进。18个月内,模型在架构、训练数据和能力上实现显著突破:从纯稠密结构(Qwen2.5)发展为混合注意力架构(Qwen3.5),支持语言从29种扩展至201种,并实现原生多模态融合。关键进展包括引入MoE架构、Gated DeltaNet混合注意力机制(计算效率提升10倍)、以及从独立模态到早期视觉语言联合训练的转变。模型阵容从7个通用尺寸发展为8+个混合架构,最大参数量达397B,上下文窗口扩展至256K(托管版1M

m0_47999117的博客 1万+

Android 之 Spinner (列表选项框)的基本使用

本来本节是想给大家介绍一个Gallery(画廊)的一个控件的,后来想想还是算了,因为 在Android 4.1后就已经被弃用了,尽管我们可以通过兼容不来使用Gallery,不过想想 还是算了,因为Gallery在每次切换图片的时候,都需要重新创建视图,这样无疑会造成 很大资源浪费!我们可以通过其他方法来实现Gallery效果,比如通过HorizontalScrollView 来实现水平滚动效果,或者编写一个水平方向的ListView~有兴趣自己谷歌! 本节学习的是一个叫做Spinner的Adapter控件。

leyang0910的博客 3893

OSMDroid 切换地图不更新的问题

用OSMDroid加载Google地图的时候 需要有按钮切换不同图层的地图,如果发现调用了mMapView.setTileSource(ITileSource aTileSource)方法的时候发现地图View没有更新的话,可能是因为两个实例化TileSource对象其子类BitmapTileSourceBase这个类的aName成员变量值一样导致的地图在setTileSource出现不更新问题,...

godoge的博客 1039

Android Spinner控件

1.Spinner类 Spinner类提供了一个下拉列表。常用参数 entries,指定加载数据 spinnerMode,指定显示方式,dropdown是下拉菜单,dialog是弹出框 prompt,指定弹出框标题 界面UI &amp;amp;amp;amp;amp;lt;Spinner android:id=&amp;amp;amp;amp;quot;@+id/spinner1&amp;amp;amp;amp;quot; a

假装你是大灰狼的专栏 2219

RK3568(buildroot)利用squashfs+overlay实现嵌入式系统高可靠存储方案

本文详细介绍了在RK3568嵌入式平台上,基于Buildroot系统,利用squashfs只读根文件系统与overlayfs可写层相结合的高可靠存储方案。该方案能有效防止设备意外断电导致的系统文件损坏,通过内核配置、启动脚本编写及镜像制作,实现系统核心的只读保护与用户数据的持久化分离,显著提升嵌入式设备的现场稳定性。

weixin_29189381的博客 548

逆变器技术解析:DDSRF双解耦在正负序分离中的关键作用

本文深入解析了DDSRF双解耦技术在逆变器正负序分离中的关键作用。通过建立正反旋转坐标系并利用交叉反馈解耦网络,DDSRF能快速、精准地分离电网电压中的正负序分量,从而显著提升锁相环在电网不平衡条件下的精度与系统稳定性,是现代高性能并网逆变器的核心算法之一。

m3n5b7v8c9x的博客 410

Android基本控件Spinner的简单使用【转】

Android基本控件Spinner的简单使用 感谢大佬:https://blog.youkuaiyun.com/bingocoder/article/details/80469939 学习过了Textview,EditText,ImageView,Button 等简单View控件后,刚一看Spinner感觉有些复杂。显示数据还需要用Adapter。。。认真学习后做简单梳理 : 上面两个图介绍了Spinn...

Jason的学习笔记 329

多摄像头场景下 ISP 的同步与调度机制实战解析

在智能手机多摄系统中,主摄、广角、长焦、微距等摄像头的协同工作能力直接决定了影像系统的体验上限。而支撑这一能力的核心之一,正是 ISP 的同步与调度机制。ISP 需要处理多个 Sensor 的输入流、统一时序、资源仲裁、并发调度,并支持在不同模式间快速切换(如预览 → 拍照 → 视频)。本文将基于 Qualcomm、MTK、HiSilicon 平台的实际架构,系统性剖析 ISP 在多摄场景下的时序控制、Pipeline 配置、Buffer 管理与故障恢复机制,并分享实战中的典型问题与调试方案。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 2347

Android中Spinner用法

一、Spinner的两种展示样式 下拉列表的展示方式有两种,一种是在当前下拉框的正下方展示列表,此时把spinnerMode属性设置为dropdown;另一种是在页面中部以对话框形式展示列表,此时把SpinnerMode属性设置为dialog。 二、Spinner相关方法 setPrompt:设置标题文字。 setAdapter:设置下拉列表的适配器。 setSelection:设置当前选中哪项。注意该方法要在setAdapter方法之后调用。 setOnItemSe

水月洞天 2万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

一步一步学android之基本控件——Spinner组件

主要对spinner样式进行修改,并且提及textview跑马灯效果的实现方法

Kay的专栏 2966

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

安卓界面控件之Spinner

安卓界面控件之SpinnerSpinner的定义:如果为Spinner中添加选择项目 Spinner的定义: 1.Spinner是一种能够从多个选项中选一个选项的控件,使用浮动菜单为用户提供选择 2.类似于桌面程序的组合框(ComboBox) Spinner位于工具栏Palette栏中的Containers中的第一个(意味着Spinner是一种容器,存放选择的容器) 如...

weixin_44405478的博客 1190

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Android Spinner总结

在 Android 中,Spinner是一个下拉选择框。

xiangxiongfly 1052

Android中Spinner控件及级联Spinner的使用

下拉框是Android中一个较为常用的控件,用于从下拉选项中选出一个选项,这种方式可以很好的节省控件,如中国32个省市和地区,如果挨个放在屏幕里不美观且占位置。 它有如下属性 entries:设置显示数组数据 dropDownWidth:设置下拉列表的宽度 dropDownSelector:设置Spinner组件的下拉框被选择的动态效果 popupBackground:下拉框的背景

QuietShake的博客 2150

Spinner的简单使用

Spinner的简单使用 本文简单介绍Spinner控件的使用 动笔之前先唠叨一下,最近找工作不顺,可能受到大环境的影响,不过感觉andriod的市场确实比较饱和了,根据鄙人浅显的认识,感觉目前的andriod应用已经达到了一个平衡状态,想想android的目前主要的应用方向有哪些,鄙人暂时想到的方向如下: 1.电商应用:这个会涉及到几个岗位,大概是美工,android工程师,后

贤鱼 2万+

使用Kotlin的Android Spinner

In this tutorial, we’ll be discussing and implementing Spinners in our Android Application using Kotlin. Android Spinner is used to create a drop-down list on the screen. 在本教程中,我们将使用Kotlin在Android应用程序...

从零开始的教程世界 2772

Android基本控件之Spinner的使用

安卓中Spinner是一个下拉选择框控件,可已通过它来实现对有限条目的选择操作。 使用方法: 首先,在xml中配置Spinner控件<Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height=

charuolee的博客 961

Android基础知识学习- spinner使用

android基础开发中spinner控件作为基础控件之一比较常见,下面简单记录下它的使用: 一、布局文件中的Spinner <LinearLayout android:layout_width="match_parent" android:layout_height="60dp" android:orientation="vertica...

雨墨轩痕 8274

Android 控件之 Spinner下拉列表 使用简单总结

在做项目时,经常用到下拉列表,下拉列表的数据源不管是本地数据还是从服务器下载缓存到本地的数据,道理大同小异,设置下拉列表的步骤是一样的。简单总结设置Spinner的步骤如下: 1.     建立一个需要显示存放Spinner控件的layout布局文件。 2.     建立一个存放Spinner列表控件内容样式的布局文件(可以使用系统的)。 3.     在需要处理Spinner控件的Acti

mojieke的专栏 5024

安卓Spinner用法最简单获取键值对

//安卓开发过程中Spinner用法最简单获取键值对 public class MainActivity extends Activity { private Spinner mySpinner; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceS

大城小小爱的博客 4280

Android中Spinner的使用

<br />1、布局文件  <br /><?xml version="1.0" encoding="utf-8"?><br /> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />     android:orientation="vertical"<br />     android:layout_width="fill_parent"<br />     android:layout_

wonderful19891024的专栏 1712

Android——基本控件之下拉列表:Spinner(九)

Spinner组件功能介绍

毛栗子201105的博客 5773
上一篇: Android 程序,实现Activity之间的跳转
下一篇: 初始Java反射机制,通过修改工厂设计模式理解反射机制的优点
bingoCoder
博客等级 码龄10年 1400粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值