android事件处理机制-基于监听的事件处理

Android的事件处理机制详解(一)-----基于监听的事件处理机制 我们开发的app更多的时候是需要与用户的交互----即对用户的操作进行响应 这就涉及到了android的事件处理机制; android给我们提供了两套功能强大的处理机制: ①基于监听的事件处理机制 ②基于回调的事件处理机制 在这一节中,我们会先介绍一下基于监听的事件处理机制 好了,废话不多说! 我们要先了解一下监听处理机制的模型 监听的处理模型: 处理模型 阅读详情

基于事件监听的处理

对于有一定java基础的开发者,一定对事件监听很熟悉,因为在SWING/AWT中会用到这种事件监听的
处理。下面让我来详细说明这种处理模型!
在事件监听的处理模型中,主要涉及事件源、事件和事件监听器这三类对象。
事件源:通常就是各个组件,如按钮,菜单等;
事件:就是一次用户的操作。
事件监听器:监听事件源发生的事件,并对各事件进行相应的响应。


下面我们看它们之间的调用关系:


从上面的程序中,我们可以知道基于事件监听的编程步骤:
1、获取事件源
2、实现事件监听的类
3、给事件源注册事件监听器,调用setXXXListener()方法


下面我们给出一个小例子,主要功能就是实现单击按钮之后改变文本框的内容。
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class EventTest extends Activity
{
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		//获取应用程序中的bn按钮
		Button button = (Button)findViewById(R.id.button);
		//为按钮绑定事件监听器。
		button.setOnClickListener(new MyFirstClickListener());
	}
	//定义一个单击事件的监听器
	class MyFirstClickListener implements View.OnClickListener
	{
		//实现监听器类必须实现的方法,该方法将会作为事件处理器
		@Override
		public void onClick(View v)
		{
			EditText txt = (EditText)findViewById(R.id.txt);
			txt.setText("Hello,事件监听!");
		}		
	}
}


【Android 】零基础到飞升 | 基于监听的事件处理机制 3.1.1 基于监听的事件处理机制 分类 Android 基础入门教程 本节引言: 第二章我们学习的是Android的UI控件,我们可以利用这些控件构成一个精美的界面,但是仅仅是界面而已;下一步就要开始学习逻辑与业务实现了,本章节讲解的是Android的事件处理机制!何为事件处理机制?举个 简单的例子,比如点击一个按钮,我们向服务器发送登陆请求!当然,Android中的事件处理机制不止这一种, 比如屏幕发生选择,我们点击了屏幕上某个区域...简单... 阅读详情

相关推荐

java JRadioButton的使用

java JRadioButton的使用 java JRadioButton的使用 java JRadioButton的使用

基于监听的事件处理

当用户在程序界面上执行各种操作时,用户程序必须为用户动作提供相应动作,这种响应动作通过事件处理来完成。 Android提供了两种事件处理:基于回调的事件处理,基于监听的事件处理。 1.1监听的处理模型 主要涉及三类对象 EventSource(事件源)事件发生的场所,通常就是各种组件,例如按钮、窗口、菜单 Event(事件)事件封装了界面组件上发生的特定事情(通常是一次用户操作),如果程

DarkerFans的博客 1236

基于监听的事件处理模型

作者:郭孝星 微博:http://weibo.com/allenwells 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells

基于监听的事件处理模型的编程步骤

基于监听的事件处理模型的编程步骤如下: 1.获取普通界面组件(事件源),也就是被监听的对象。 2.实现事件监听器类,该监听器类是一个特殊的Java类,必须实现一个XxxListener接口。 3.调用事件源的setXxxListener方法将事件监听器对象注册给普通组件(事件源)。

千里之行,始于足下 2521

Android中的事件处理总结

Android中的事件处理总结 Android系统对动作做出的响应机制就是事件处理。Android提供了两种事件处理机制。 基于监听的事件处理机制 基于回调的事件处理机制 一、基于监听的事件处理机制 Android的事件监听机制就是一种”面向对象”的事件处理,是一种”委派模式(Delegate)”事件处理方式。Android的UI组件(事件源)将整个事件处理委托给特定的对象(事件监听器);当该事件源发生指定的事件时,就通知所委托的事件监听器,由事件监听器来处理事件。例如:消防所(事件监听器)监听所有的火灾事件并处理火灾,所有的企事业单位(事件源)当发生火灾时本身自己无法灭火,都委托给消防所来

BUCK电路三种工作模式全解析:CCM、BCM、DCM到底怎么选?

本文深入解析BUCK电路的CCM、DCM和BCM三种工作模式,通过对比其电流波形、效率、纹波及环路特性,提供基于计算公式的量化判断方法。文章结合电池供电、高精度模拟等具体应用场景,给出明确的模式选型策略与实战设计指南,帮助工程师根据核心需求做出最优决策。

ee345的博客 486

实现事件监听的步骤

①定义一个类实现事件监听器的接口 ②创建一个事件源 ③为事件源注册事件监听器对象 ④事件监听器调用相应的方法来处理相应的事件

苏格拉没有鞋底的博客 2742

北京联通IPTV组播实战:OpenWRT软路由配置全解析

本文详细解析了在北京联通IPTV环境下,利用OpenWRT软路由和udpxy工具实现组播转单播的实战配置。内容涵盖网络接口设置、防火墙规则、udpxy安装配置、直播源M3U文件处理以及全平台播放指南,帮助用户无需机顶盒即可在家庭局域网内任何设备上流畅观看电视直播。

weixin_29313547的博客 1407

jradiobutton设置默认选项_JRadioButton(单选按钮)添加事件监听

效果图: 代码:import java.io.File ;import java.awt.Container ;import java.awt.GridLayout ;import java.awt.event.WindowAdapter ;import java.awt.event.ItemListener ;import java.awt.event.ItemEvent ;import ja...

weixin_39896839的博客 569

服务器centos上安装IC618(virtuoso)教程

只需要按照提供的步骤即可实现IC618安装。有需要详情请联系QQ:563962386

swicthsober的博客 1万+

【Cursor+Playwright-MCP 实现 AI 自主功能测试】含实例代码脚本+保姆级教程

本文档详细介绍了如何使用 Cursor(AI 编程助手)和 Playwright-MCP 库实现基于 GPT 模型的自动化功能测试。文档从环境搭建开始,逐步指导读者如何通过 Playwright 进行浏览器自动化,并利用 Playwright-MCP 集成 GPT 模型生成测试计划、执行测试步骤及生成测试报告。核心步骤包括安装依赖、配置 OpenAI API 密钥、编写代码实现 AI 驱动的测试流程,以及生成详细的测试报告。通过本文档,读者可以快速掌握从 0 到 1 实现 AI 自主功能测试的全流程。

Dreams°的博客 2891

Android 组件的三种点击事件写法

三种实现方式 1、(方式一)在与事件绑定时定义事件监听器 该方法是当通过调用组件的setXXXListener()方法设置监听器时,定义只能当前的组件使用的事件监听器,代码如下 1 public class MainActivity extends AppCompatActivity implements View.OnClickListener { 2 3 @Ove...

kwame211的博客 821

学Simulink——基于Simulink的单相PWM整流器PI电压外环+电流内环控制建模示例

本文详细介绍了基于Simulink的单相PWM整流器双闭环控制仿真方法。通过电压外环PI控制器调节有功功率生成电流指令,电流内环PI控制器实现正弦电流跟踪,最终达到输出电压稳定(400V±2V)、输入电流THD<3%、功率因数>0.99的目标。文章包含系统架构、数学模型、Simulink搭建步骤(主电路、PI控制器、SPWM调制等)及三种典型工况的仿真验证,并给出电感设计、数字实现等工程实践要点。该方案克服了传统整流器高谐波、低功率因数的问题,为绿色电源开发提供了可验证的仿真模型。

xiaoheshang_123的博客 74

Android 之 基于监听的事件处理机制

只需要让Activity类实现XxxListener事件监听接口,在Activity中定义重写对应的事件处理器方法 eg:Actitity实现了OnClickListener接口,重写了onClick(view)方法在为某些组建添加该事件监听对象 时,直接setXxx.Listener(this)即可。事件监听机制是一种委派式的事件处理机制,事件源(组件)事件处理委托给事件监听器 当事件源发生指定事件时,就通知指定事件监听器,执行相应的操作。//重写点击事件的处理方法onClick()

leyang0910的博客 357

实现两端固支梁热力耦合的有限元分析

在本文中,我们将使用Matlab实现两端固支梁的热力耦合有限元分析。我们假设梁的材料是均匀的,梁的截面积为1,长度为1,两端固支,且受到均匀分布的热荷载。接下来,我们需要组装全局刚度矩阵和热传导矩阵。对于两个相邻的元素,它们共享一个节点,因此需要使用连接矩阵将局部矩阵组装成全局矩阵。接下来,我们需要定义元素刚度矩阵和热传导矩阵。然后,我们需要定义载荷向量。然后,我们需要定义边界条件。在这个例子中,梁的两端固支,因此我们需要将两端节点的位移限制为0。最后,我们需要解决线性方程组,得到节点的位移和温度分布。

CyberSparkZ的博客 396

【面试系列】数据工程师高频面试题及详细解答

本文针对数据工程师岗位,提供了详尽的面试题库和解答,分为初级、中级和高级三个层次。初级面试题主要涉及基本的数据处理和ETL工具的使用,如SQL查询、数据清洗和基本的数据建模。中级面试题重点考察数据管道设计、数据库优化和大数据平台的应用。高级面试题则深入探讨高级数据处理技术、分布式系统架构和数据湖的实现。通过这些问题和解答,候选人可以全面了解数据工程师岗位所需的技能,帮助其更好地准备面试。常考知识点总结部分则系统归纳了数据工程师岗位的关键技能领域。

在路上的专栏 2375

Android事件处理机制之监听事件处理机制

Android事件处理机制主要有两种1,回调机制处理2,监听机制处理回调机制主要做法是处理安卓组件特定的回调方法,处理通用事件,监听机制主要处理特定事件今天主要回顾基于监听事件的事件处理,1,监听的处理模型监听处理模型主要有三类对象,分别为, 事件源(Event Source):事件发生的对象, 事件(Event):封装了界面组件上的特定事件,可通过Event对象获得, 事件监听(EventList

Sky的博客 858

灰色预测GM(1,n)模型_python

灰色系统理论及其应用系列博文: 一、灰色关联度分析法(GRA)_python 二、灰色预测模型GM(1,1) 文章目录一、GM(1,n)算法二、示例2.1 数据:2.2 代码_使用GM(1,n)城市用水总量2.3 结果分析 一、GM(1,n)算法 二、示例 注:数据均来自论文《基于灰色系统理论的贵阳市城市用水总量预测》 2.1 数据: data.csv 年份,城区人口,建成区面积,供水总量,用水人口,人口综合用水指标,城市用水总量 2002, 191.85, 98.00, 26396.00,

qq_34229228的博客 1万+

android事件处理-基于监听机制

一、基于监听的事件处理 包含Event Source 事件源,即各个控件 Event 事件,通常是用户的一次操作 Event 事件监听器,负责监听事件源所发生的事,并做出对应的回应 二、基于监听机制的事件处理的三种模型 1、接口实现事件处理模型

LittleWhiteTree的博客 642

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android采用基于监听事件处理机制

监听事件处理机制几种形式: 内部类形式实现监听器 匿名内部类形式实现监听器 类本身实现监听器 外部类实现监听器(因为用的不是很多,在此不讲述) 常用的几种监听接口: View.OnClickListener (单击事件监听器必须实现的接口) View.OnCreateContextMenuListener (创建上下文菜单事件) View.OnFocusChangeListener (焦点改...

GOoi的博客 387

深度学习工具包 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的事件处理机制之基于监听的事件处理

无论是桌面应用还是手机应用程序,面对用户的使用,经常需要处理的便是用户的各种动作,也就是需要为用户动作提供响应,这种为用户动作提供响应的机制就是事件处理。 而Android为我们提供了两套强大的响应机制:基于监听的事件处理和基于回调的事件处理。本文这次讨论的便是基于监听的事件处理。 对于Android基于监听的事件处理而言,主要做法就是为Android界面组件绑定特定的事件监听器,除...

707

Android基于监听的种事件处理机制

Android基于监听的种事件处理机制 作用:当用户在应用界面上执行各种操作时,应用程序需要为用户的动作提供响应,这种响应的过程就是事件处理。 监听的三要素 事件(Event) 事件源(Event Source) 事件监听器(Event Listener) 事件监听器的本质:实现了一个特定接口发的java对象 实现事件监听器的四种方式 1.Activity本身作为事件监听器:通过Activity实现监听器接口,并实现事件处理方法。 2.匿名内部类形式:使用匿名内部类创建监听器对象。 3.内部类或外部类形

qq_45193294的博客 2442

【Android 事件处理】基于监听的事件处理机制

文章目录基于监听的事件处理机制本节引言1.基于监听的时间处理机制模型2.五种不同的使用形式1)直接用匿名内部类2)使用内部类3)使用外部类4)直接使用Activity作为事件监听器5)直接绑定到标签 基于监听的事件处理机制 本节引言 之前我们学习的是Android的UI控件,我们可以利用这些控件构成一个精美的界面,但是仅仅是界面而已;下一步就要开始学习逻辑与业务实现了,本节讲解的是Android的事件处理机制!何为事件处理机制?举个 简单的例子,比如点击一个按钮,我们向服务器发送登陆请求!当然,And.

懂得一千零一种,赋予你失败的方法! 1313

37. 【Android教程】基于监听的事件处理机制

本节介绍了 Android 的事件处理机制以及主要常用的集中事件,并以最常用的为例详细讲解了集中实现方式,其他的集中事件几乎都是照壶画瓢,大家有兴趣的也可以模仿本节示例自行实现一下。在本节之前的内容大多是为 UI 布局为主,本节之后大家将会见到很多事件相应及逻辑控制,只有将 UI 和事件处理和在一起,才能写出各式各样的App,你打算写一个什么样的呢?

这是一个web全栈开发的博客,取其精华去其糟粕,争取让大家一看就懂,一学就会,一用就成~ 1400

Android基于监听的事件处理机制

Android提供了强大的事件处理机制,主要包括两大类: 1,基于监听的事件处理机制:主要做法是为Android界面组件绑定特定的事件监听器 2,基于回调的事件处理机制:主要做法是重写Android组件特定的回调方法,或重写Activity的回调方法。也就是说Android的绝大多数的界面组件都提供了事件响应的回调方法,开发者只要重写它们即可 基于监听的事件处理是一种更加面向对象的事

tuke_tuke的博客 4260
上一篇: 二分查找
下一篇: Thread和Runnable浅析
StevenLoveMaggie
博客等级 码龄16年 10粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值