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