Android 中的刪除線文字


簡介

在許多 Android 應用程式中,我們可以看到 TextView 上有一條刪除線穿過文字。在大多數電子商務應用程式中,我們可以看到這種型別的 TextView,其中產品的原始價格被刪除線劃掉,而顯示折扣價。在本文中,我們將瞭解如何在 Android 中在 TextView 上新增刪除線。

實現

我們將建立一個簡單的應用程式,其中我們將建立一個 TextView 來顯示應用程式的標題。之後,我們將再建立一個 TextView,並在其上新增和移除刪除線。然後,我們將建立一個按鈕,用於在 TextView 上新增或移除刪除線。現在讓我們轉到 Android Studio 中建立一個新的專案。

步驟 1:在 Android Studio 中建立新專案

導航到 Android Studio,如下面的螢幕所示。在下面的螢幕中,點選“新建專案”以建立新的 Android Studio 專案。

點選“新建專案”後,您將看到下面的螢幕。

在此螢幕中,我們只需選擇“空活動”並點選“下一步”。點選“下一步”後,您將看到下面的螢幕。

在此螢幕中,我們只需指定專案名稱。然後包名將自動生成。

注意 - 確保選擇語言為 Java。

指定所有詳細資訊後,點選“完成”以建立新的 Android Studio 專案。

專案建立完成後,我們將看到兩個開啟的檔案,即 activity_main.xml 和 MainActivity.java 檔案。

步驟 2:使用 activity_main.xml

導航到 activity_main.xml。如果此檔案不可見,要開啟此檔案,在左側窗格中導航到 app>res>layout>activity_main.xml 以開啟此檔案。開啟此檔案後,將以下程式碼新增到其中。程式碼中添加了註釋以便詳細瞭解。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
   android:orientation="vertical"
   tools:context=".MainActivity">
   <!-- on below line creating a text view for displaying the heading of our application -->
   <TextView
       android:id="@+id/idTVHeading"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_centerInParent="true"
       android:layout_margin="5dp"
       android:gravity="center"
       android:padding="4dp"
       android:text="Strikethrough Text in Android"
       android:textAlignment="center"
       android:textColor="@color/black"
       android:textSize="20sp"
       android:textStyle="bold" />
   <!-- on below line creating a text view for adding a strike through for our text -->
   <TextView
       android:id="@+id/idTVStrike"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/idTVHeading"
       android:layout_centerHorizontal="true"
       android:layout_margin="5dp"
       android:padding="4dp"
       android:text="Welcome to Android Development Tutorials"
       android:textAlignment="center"
       android:textColor="@color/black"
       android:textSize="18sp" />
   <!-- on below line creating a button to add and remove a strike through for our text view -->
   <Button
       android:id="@+id/idBtnStrike"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/idTVStrike"
       android:layout_margin="10dp"
       android:text="Add Strike"
       android:textAllCaps="false" />
</RelativeLayout>

說明 - 在上面的程式碼中,我們建立了一個根佈局作為 RelativeLayout。在此佈局內,我們建立了一個 TextView 用於顯示應用程式的標題。在此標題 TextView 之後,我們建立了另一個 TextView,我們將在其上新增和移除刪除線。然後,我們建立了一個按鈕,我們將使用它來在 TextView 上新增和移除刪除線。現在我們將轉到 MainActivity.java 檔案初始化我們建立的檢視。

步驟 3:使用 MainActivity.java 檔案

導航到 MainActivity.java。如果此檔案不可見,要開啟此檔案,在左側窗格中導航到 app>res>layout>MainActivity.java 以開啟此檔案。開啟此檔案後,將以下程式碼新增到其中。程式碼中添加了註釋以便詳細瞭解。

package com.example.java_test_application;
import android.graphics.Paint;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
   // creating variables for text view and button on below line.
   private TextView strikeTV;
   private Button strikeBtn;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       // initializing variables for button on below line.
       strikeBtn = findViewById(R.id.idBtnStrike);
       // initializing variable for text view on below line.
       strikeTV = findViewById(R.id.idTVStrike);
       // adding an on click listener for button on below line.
       strikeBtn.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               // on below line we are checking if the text view is not striked through.
               if (!strikeTV.getPaint().isStrikeThruText()) {
                   // if text is not striked.
                   // we are setting the button text as remove strike.
                   strikeBtn.setText("Remove Strike");
                   // on below line we are adding a strike through for our text.
                   strikeTV.setPaintFlags(strikeTV.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
               } else {
                   // if text is  striked.
                   // we are setting the button text as add strike.
                   strikeBtn.setText("Add Strike");
                   // on below line we are removing a strike through for our text.
                   strikeTV.setPaintFlags(strikeTV.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
               }
           }
       });
   }
}

說明 - 在上面的程式碼中,首先我們為按鈕和 TextView 建立變數。現在我們將看到 onCreate 方法。這是每個 Android 應用程式的預設方法。當建立應用程式檢視時,會呼叫此方法。在此方法內,我們設定內容檢視,即名為 activity_main.xml 的佈局檔案,以從該檔案中設定 UI。在 onCreate 方法內,我們使用我們在 activity_main.xml 檔案中提供的 ID 初始化按鈕和 TextView 變數。之後,我們為按鈕添加了一個點選監聽器。在點選監聽器方法內,我們檢查 TextView 是否已加刪除線。如果 TextView 未加刪除線,我們將在 TextView 上新增刪除線並更改按鈕的文字。類似地,如果文字已加刪除線,我們將移除刪除線並相應地更改按鈕的文字。

新增上述程式碼後,我們只需點選頂部欄中的綠色圖示即可在移動裝置上執行我們的應用程式。

注意 - 確保您已連線到您的真實裝置或模擬器。

輸出

結論

在本文中,我們瞭解瞭如何在 Android 應用程式中新增刪除線。

更新於: 2023年5月9日

2K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告