Android 中的加载按钮
Android 应用程序中一个典型的 UI 组件,用于告知用户操作正在处理中,就是加载按钮。当用户按下该按钮时,按钮文本会转换为加载动画或进度条,指示程序正在处理用户的请求。这在操作(例如填写表单或下载数据)可能需要几秒钟才能完成时特别有用。通过消除混淆并提供操作状态的更新,加载按钮可以改善用户体验。它是一种简单但有效的方法,可以提高 Android 应用的感知响应速度和性能。
谷歌创建的 Android 操作系统具有高度的灵活性,并具有卓越的多平台适用性。这个易于访问的操作系统可以在不同的设备(如智能手机、平板电脑和智能手表)上高效运行,使其成为全球用户常用的选择。它以 Linux 内核为基础,并且具有开源特性,使开发人员能够自由创建满足其特定定制需求的应用程序,没有任何限制。
Android 按钮的类型
Android 对按钮的使用是其显著特征之一,因为它为用户提供了一种简单而自然的方式来与程序交互。以下是一些常见的 Android 按钮功能:
导航按钮 - 返回、主页和最近程序按钮是导航按钮的示例,它们允许用户在 Android 显示屏上移动并在程序之间切换。
操作按钮 - 这些按钮执行特定任务,例如播放电影或提交表单。
切换按钮 - 用户可以使用切换按钮轻松更改特定设置,例如蓝牙或 Wi-Fi 使用情况。
浮动操作按钮 - 在各种应用程序中,圆形浮动操作按钮通常用于执行基本功能,例如创建新项目或消息。
对于 Android 设备和应用程序的用户来说,使用按钮提供了一种简单而轻松的交互方式。
算法
首先在您的布局 XML 文件中创建一个具有适当 ID 的按钮。
接下来,使用 findViewById() 在您的 Java 代码中访问它。
单击该按钮后,更改其文本以指示某些后台操作正在进行中。
最后,使用 Runnable 实例准备并执行某种形式的加载操作 - 根据需要执行网络调用或与数据库交互。
使用 Handler 将 Runnable 发布到主线程的消息队列。
在 Runnable 内部,执行加载操作并相应地更新 UI。
加载过程完成后,请更新按钮上的文本以反映其完成情况。
方法
使用 ProgressBar
使用 AsyncTask
使用 ProgressBar
示例
ProgressBar progressBar = findViewById(R.id.progressBar);
Button myButton = findViewById(R.id.my_button);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myButton.setEnabled(false);
progressBar.setVisibility(View.VISIBLE);
new Handler().post(new Runnable() {
@Override
public void run() {
// Perform loading action, such as making a network call
// or performing a database query.
// Update UI as necessary.
progressBar.setVisibility(View.GONE);
myButton.setEnabled(true);
}
});
}
});
在您的布局 XML 文件中,用 ProgressBar 替换您的常规按钮。
务必确保用户无法看到 ProgressBar,首先为其分配的可见性使用“gone”设置。
在您的 Java 代码中,使用 findViewById() 来获取这两个 UI 元素的引用 - 该 ProgressBar 和伴随的按钮。
完成这些步骤并单击该按钮后,通过修改的可见性(“visible”)显示该进度,同时禁用来自该选择的用户的操作。
创建一个将执行加载操作的 Runnable。
使用 Handler 将 Runnable 发布到主线程的消息队列。
在 Runnable 内部,执行加载操作并相应地更新 UI。
加载完成后,将 ProgressBar 的可见性设置回“gone”并启用按钮。
输出


激活按钮会触发 ProgressBar 功能在屏幕上快速出现。然后,按钮会立即禁用自身。加载过程完成后,ProgressBar 将消失,按钮将被启用。加载完成后,用户将在按钮上收到一条消息,上面写着“完成!”。
使用 AsyncTask
示例
public class MyAsyncTask extends AsyncTask{ ProgressBar progressBar; Button myButton; public MyAsyncTask(ProgressBar progressBar, Button myButton) { this.progressBar = progressBar; this.myButton = myButton; } @Override protected void onPreExecute() { myButton.setEnabled(false); progressBar.setVisibility(View.VISIBLE); } @Override protected Void doInBackground(Void... voids) { // Perform loading action, such as making a network call // or performing a database query. // Update UI as necessary. return null; } @Override protected void onPostExecute(Void aVoid) { progressBar.setVisibility(View.GONE); myButton.setEnabled(true); } } ProgressBar progressBar = findViewById(R.id.progressBar); Button myButton = findViewById(R.id.my_button); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new MyAsyncTask(progressBar, myButton).execute(); } });
我们需要通过创建一个扩展 AsyncTask 的新类来改进我们的 Java 代码,以实现流畅的操作流程。
通过覆盖 onPreExecute(),我们可以在使用 findViewById() 作为参考点禁用按钮的同时轻松创建有效的加载动画。
在执行加载操作之前,考虑使用 doInBackground() 方法执行后台操作,然后最终覆盖 onPostExecute() 并隐藏此显示动画以及启用/禁用关联的按钮功能。
输出


激活 AsyncTask 会在按下用户关联的按钮时开始,然后产生一个独特的视觉提示;具体来说,显示一个 ProgressBar,同时使该特定控件元素无响应。在异步计算工作完成并且后台加载停止后,用户会通过看到其可点击控件元素的再生来注意到此进度,而无需明确的文字通信。
结论
在 Android 应用程序中集成有效的加载按钮功能需要深思熟虑的决策,这些决策需要考虑超出交互级别本身的方面;加载复杂性和更广泛的设计特征也起着关键作用。尽管这些示例提供了某些可能使用的策略的简单说明,但确定最佳前进路径取决于特定的代码细节,例如必须加载哪种操作或 UI 刷新模式。定制的方法通常是在实现针对特定用例最佳执行的加载按钮方面最有效的方法。上述代码示例仅仅是说明如何实现两种不同方法来创建 Android 加载按钮。
Android 加载按钮允许用户知道何时正在发生加载操作,这是一个有用的功能,可以帮助创建更好的用户体验。在 Android 开发中,存在多种创建加载按钮的方法;一种流行的技术是实现进度条或异步任务。使用任何这些策略,按下相关按钮会导致其立即禁用并显示动画加载图标。同时,软件在后台静默加载内容。此过程完成后,按钮最终会被重新激活。
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP