Tính trung bình cộng hai số trong android năm 2024

Lưu đồ thuật toán là công cụ dùng để biểu diễn thuật toán, mô tả nhập (input), dữ liệu xuất (output) và luồng xữ lý thông qua các ký hiệu hình học. Công cụ này rất thích hợp để bạn học cách tư duy phân tích bài toán.

Để vẽ lưu đồ thuật toán, bạn cần nhớ và tuân thủ các ký hiệu sau đây:

Tính trung bình cộng hai số trong android năm 2024

Lưu đồ thuật toán được duyệt lưu đồ thuật toán theo trình tự sau:

  • Duyệt từ trên xuống.
  • Duyệt từ trái sang phải.

Để cho dễ hình dung, chúng ta sẽ tìm hiểu các bài toàn sau:

Bài 1: Cho số nguyên n. Hãy tính giá trị tuyệt đối của n.

  • Đầu vào: một số nguyên n.
  • Đầu ra: giá trị tuyệt đối của số nguyên n.

Bản chất của bài toán này là bạn cần kiểm tra số nguyên n có nhỏ hơn 0 hay không. Nếu nhỏ hơn 0 thì bạn nhân giá trị của n cho -1 để chuyển thành số nguyên dương. Còn nếu n lớn hơn 0 thì bạn không cần làm gì cả. Sau cùng thì bạn in giá trị của n ra, đó cũng chính là giá trị tuyệt đối mà bạn cần.

Tính trung bình cộng hai số trong android năm 2024

Bài 2: Giải và biện luận phương trình bậc nhất: ax + b = 0

  • Đầu vào: hai số nguyên a và b.
  • Đầu ra: nghiệm của phương trình.

Tính trung bình cộng hai số trong android năm 2024

Bài 3: Vẽ lưu đồ cho thuật toán nhập vào điểm toán, điểm lý và điểm hoá. Sau đó tính tổng điểm, điểm trung bình và hiển thị kết quả.

Phân tích: Nhập vào điểm toán, điểm lý và điểm hóa; Xử lý là tính điểm tổng và điểm trung bình cộng; Hiển thị điểm tổng và điểm trung bình cộng.

Tính trung bình cộng hai số trong android năm 2024

Bài 4: Vẽ lưu đồ cho thuật toán tính chu vi, diện tích hình tròn. Hiển thị chu vi và diện tích sau khi tính.

Phân tích: Nhập vào bán kính r; Xử lý là tính chu vi = 2*PI*r, diện tích = PI*r*r; Hiển thị chu vi và diện tích

Tính trung bình cộng hai số trong android năm 2024

Bài 5: Vẽ lưu đồ cho thuật toán tìm số lớn nhất trong 3 số a, b và c.

Phân tích: Nhập vào 3 số thực; Xử lý tìm số lớn nhất bằng cách so sánh; Hiển thị số lớn nhất

Tính trung bình cộng hai số trong android năm 2024

Công cụ vẽ lưu đồ thuật toán (flowchart)

Để vẽ lưu đồ thuật toán thì bạn có thể sử dụng bất kỳ phần mềm nào có khả năng vẽ. Hoặc đơn giản hơn là dùng Word, PowerPoint cũng được. Tuy nhiên để cho dễ dàng thì mình đề nghị 02 phần mềm sau đây:

Tài nguyên chuỗi cung cấp chuỗi văn bản cho ứng dụng bằng định dạng và định kiểu văn bản tuỳ chọn. Có 3 loại tài nguyên có thể cung cấp chuỗi cho ứng dụng của bạn:

Tài nguyên XML cung cấp một chuỗi đơn. Tài nguyên XML cung cấp một mảng chuỗi. Tài nguyên XML chứa các chuỗi khác nhau để số hoá.

Tất cả các chuỗi đều có khả năng áp dụng một số đối số định dạng và đánh dấu kiểu. Để biết thông tin về định kiểu và định dạng các chuỗi, vui lòng xem mục .

Chuỗi

Một chuỗi đơn có thể được tham chiếu từ ứng dụng hoặc từ các tệp tài nguyên khác (chẳng hạn như bố cục XML).

Lưu ý: Chuỗi là một tài nguyên đơn giản được tham chiếu bằng cách sử dụng giá trị đã cung cấp trong thuộc tính

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

4 (không phải tên của tệp XML). Vì vậy, bạn có thể kết hợp tài nguyên chuỗi với các tài nguyên đơn giản khác trong một tệp XML, bên dưới một phần tử

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

5.

vị trí tệp:

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

6 Bạn có thể tuỳ ý đặt tên tệp.

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

4 của phần tử

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

8 được dùng làm mã nhận dạng tài nguyên. loại dữ liệu tài nguyên được biên dịch: Con trỏ tài nguyên đến

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

9. mã tham chiếu tài nguyên: Trong Java:

String string = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello);

0 Trong XML:

String string = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello);

1 cú pháp:

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

string-resources-element)>
<[string](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-element)
    name="_stringname_"
textstring

phần tử:

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

5 Bắt buộc. Đây phải là nút gốc.

Không có thuộc tính nào.

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

8 Một chuỗi có thể bao gồm các thẻ định kiểu. Lưu ý là bạn phải thoát khỏi dấu nháy đơn và dấu ngoặc kép. Để biết thêm thông tin về cách định kiểu và định dạng đúng chuỗi của bạn, vui lòng xem phần bên dưới.

thuộc tính:

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

4 Chuỗi. Tên cho chuỗi. Tên này sẽ được dùng làm mã nhận dạng tài nguyên. ví dụ: Tệp XML được lưu vào

String string = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello);

5:

Hello!

Tệp XML bố cục này áp dụng một chuỗi cho một Chế độ xem:

android:layout_width="fill_parent" android:layout_height="wrap_content" **android:text="@string/hello"** /> Mã xử lý ứng dụng này truy xuất một chuỗi:

Kotlin

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

Java

String string = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello);

Bạn có thể sử dụng

String string = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello);

6 hoặc

String string = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello);

7 để truy xuất chuỗi.

String string = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello);

7 giữ lại mọi kiểu văn bản đa dạng thức được áp dụng cho chuỗi.

Mảng chuỗi

Một mảng chuỗi có thể được tham chiếu từ ứng dụng.

Lưu ý: Mảng chuỗi là một tài nguyên đơn giản được tham chiếu bằng cách sử dụng giá trị đã cung cấp trong thuộc tính

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

4 (không phải tên của tệp XML). Do đó, bạn có thể kết hợp các tài nguyên mảng chuỗi với các tài nguyên đơn giản khác trong một tệp XML, bên dưới một phần tử

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

5.

vị trí tệp:

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

6 Bạn có thể tuỳ ý đặt tên tệp.

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

4 của phần tử

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

string-array-resources-element)>
<[string-array](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-element)
    name="_stringarrayname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-item-element)
textstring

3 được dùng làm mã nhận dạng tài nguyên. loại dữ liệu tài nguyên được biên dịch: Con trỏ tài nguyên đến một mảng

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

9. mã tham chiếu tài nguyên: Trong Java:

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

string-array-resources-element)>
<[string-array](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-element)
    name="_stringarrayname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-item-element)
textstring

5 Trong XML:

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

string-array-resources-element)>
<[string-array](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-element)
    name="_stringarrayname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-item-element)
textstring

6 cú pháp:

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

string-array-resources-element)>
<[string-array](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-element)
    name="_stringarrayname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-item-element)
textstring

phần tử:

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

5 Bắt buộc. Đây phải là nút gốc.

Không có thuộc tính nào.

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

string-array-resources-element)>
<[string-array](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-element)
    name="_stringarrayname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-item-element)
textstring

3 Xác định một mảng chuỗi. Chứa một hoặc nhiều phần tử

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

string-array-resources-element)>
<[string-array](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-element)
    name="_stringarrayname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-item-element)
textstring

9.

thuộc tính:

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

4 Chuỗi. Tên cho mảng. Tên này được dùng làm mã nhận dạng tài nguyên tham chiếu đến mảng.

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

string-array-resources-element)>
<[string-array](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-element)
    name="_stringarrayname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-item-element)
textstring

9 Một chuỗi có thể chứa các thẻ định kiểu. Giá trị này có thể là một tham chiếu đến tài nguyên chuỗi khác. Phải là phần tử con của phần tử

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

string-array-resources-element)>
<[string-array](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-element)
    name="_stringarrayname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-item-element)
textstring

3. Lưu ý là bạn phải thoát khỏi dấu nháy đơn và dấu ngoặc kép. Vui lòng xem phần bên dưới để biết thông tin về cách tạo kiểu và định dạng đúng cách các chuỗi.

Không có thuộc tính nào.

ví dụ: Tệp XML được lưu vào

String string = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello);

5:


    Mercury
    Venus
    Earth
    Mars

Mã xử lý ứng dụng này truy xuất một mảng chuỗi:

Chuỗi số lượng (số nhiều)

Mỗi ngôn ngữ có những quy tắc riêng đối với thoả thuận ngữ pháp về số lượng. Chẳng hạn như trong tiếng Anh, số lượng 1 là một trường hợp đặc biệt. Chúng tôi viết "1 cuốn sách", nhưng đối với bất kỳ số lượng nào khác, chúng tôi sẽ viết "n cuốn sách". Sự khác biệt giữa số ít và số nhiều này rất phổ biến, nhưng các ngôn ngữ khác cũng giúp phân biệt rõ hơn. Tập hợp đầy đủ do Android hỗ trợ là


    Mercury
    Venus
    Earth
    Mars

4,


    Mercury
    Venus
    Earth
    Mars

5,


    Mercury
    Venus
    Earth
    Mars

6,


    Mercury
    Venus
    Earth
    Mars

7,


    Mercury
    Venus
    Earth
    Mars

8 và


    Mercury
    Venus
    Earth
    Mars

9.

Quy tắc quyết định trường hợp sử dụng cho một ngôn ngữ và số lượng nhất định có thể rất phức tạp, vì vậy, Android cung cấp cho bạn các phương thức như

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

plurals-resources-element)>
<[plurals](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# plurals-element)
    name="_pluralname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# plurals-item-element)
        quantity=["zero" | "one" | "two" | "few" | "many" | "other"]
textstring

0 để chọn tài nguyên phù hợp cho bạn.

Mặc dù trước đây được gọi là "chuỗi số lượng" (và vẫn được gọi như vậy trong API), nhưng bạn chỉ nên sử dụng chuỗi số lượng cho số nhiều. Chẳng hạn sẽ là một sai lầm nếu bạn sử dụng chuỗi số lượng để triển khai một số mục như "Hộp thư đến" của Gmail so với "Hộp thư đến (12)" khi có thư chưa đọc. Việc sử dụng chuỗi số lượng thay vì một câu lệnh

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

plurals-resources-element)>
<[plurals](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# plurals-element)
    name="_pluralname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# plurals-item-element)
        quantity=["zero" | "one" | "two" | "few" | "many" | "other"]
textstring

1 có vẻ thuận tiện, nhưng quan trọng là bạn cần lưu ý một số ngôn ngữ (chẳng hạn như tiếng Trung) không tạo ra khác biệt nào về ngữ pháp. Vì vậy, bạn sẽ luôn nhận chuỗi


    Mercury
    Venus
    Earth
    Mars

9.

Việc lựa chọn chuỗi cần sử dụng chỉ dựa trên sự cần thiết về mặt ngữ pháp. Trong tiếng Anh, một chuỗi cho


    Mercury
    Venus
    Earth
    Mars

4 sẽ bị bỏ qua ngay cả khi số lượng là 0, vì số 0 không khác về mặt ngữ pháp với số 2 hoặc bất kỳ số nào khác trừ số 1 ("0 cuốn sách", "một cuốn sách", "2 cuốn sách", v.v. ). Ngược lại, trong tiếng Hàn, chỉ chuỗi


    Mercury
    Venus
    Earth
    Mars

9 được là sử dụng.

Cũng đừng nhầm lẫn bởi thực tế


    Mercury
    Venus
    Earth
    Mars

6 có vẻ như chỉ có thể áp dụng cho số lượng 2: một ngôn ngữ có thể yêu cầu xử lý số 2, 12, 102 (v.v.) như nhau, nhưng khác với các số lượng khác. Hãy bám sát vào người biên dịch để biết ngôn ngữ của họ thực sự nhấn mạnh đến những điểm khác biệt nào.

Nếu thông báo của bạn không chứa số lượng, thì đó có thể không phải là lựa chọn phù hợp cho số nhiều. Chẳng hạn như trong tiếng Lithuania, dạng số ít được sử dụng cho cả 1 và 101, vì vậy "1 cuốn sách" được dịch thành "1 knyga" và "101 cuốn sách" được dịch thành "101 knyga". Trong khi đó, "một cuốn sách" là "knyga" và "nhiều cuốn sách" là "daug knygų". Nếu thông báo ở dạng số nhiều trong tiếng Anh chứa "một cuốn sách" (số ít) và "nhiều cuốn sách" (số nhiều) mà không có số thực, thì thông báo đó có thể được dịch là "knyga" (một cuốn sách)/"daug knygų" (nhiều cuốn sách), nhưng trong quy tắc của Lithuania, nó sẽ hiển thị "knyga" (một cuốn sách duy nhất) khi số đó là 101.

Bạn cũng có thể tránh các chuỗi số lượng bằng cách sử dụng các công thức trung lập về số lượng, chẳng hạn như "Sách: 1". Việc này giúp cuộc sống của bạn và những người biên dịch trở nên dễ chịu hơn nếu đó là phong cách chấp nhận được cho ứng dụng của bạn.

Thay vào đó, trên API cấp 24 trở lên, bạn có thể sử dụng lớp ICU

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

plurals-resources-element)>
<[plurals](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# plurals-element)
    name="_pluralname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# plurals-item-element)
        quantity=["zero" | "one" | "two" | "few" | "many" | "other"]
textstring

6 mạnh mẽ hơn nhiều.

Lưu ý: Bộ sưu tập số nhiều là một tài nguyên đơn giản được tham chiếu bằng cách sử dụng giá trị đã cung cấp trong thuộc tính

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

4 (không phải tên của tệp XML). Do đó, bạn có thể kết hợp tài nguyên số nhiều với các tài nguyên đơn giản khác trong một tệp XML, bên dưới một phần tử

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

5.

vị trí tệp:

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

6 Bạn có thể tuỳ ý đặt tên tệp.

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

4 của phần tử


    
    %d song found.
    %d songs found.

1 được dùng làm mã nhận dạng tài nguyên. mã tham chiếu tài nguyên: Trong Java:


    
    %d song found.
    %d songs found.

2 cú pháp:

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

plurals-resources-element)>
<[plurals](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# plurals-element)
    name="_pluralname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# plurals-item-element)
        quantity=["zero" | "one" | "two" | "few" | "many" | "other"]
textstring

phần tử:

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

5 Bắt buộc. Đây phải là nút gốc.

Không có thuộc tính nào.


    
    %d song found.
    %d songs found.

1 Một bộ sưu tập các chuỗi, trong đó một chuỗi được cung cấp tuỳ thuộc vào số lượng của một nội dung nào đó. Chứa một hoặc nhiều phần tử

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

string-array-resources-element)>
<[string-array](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-element)
    name="_stringarrayname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-item-element)
textstring

9.

thuộc tính:

val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello)

4 Chuỗi. Tên của cặp chuỗi. Tên này sẽ được dùng làm mã nhận dạng tài nguyên.

<[resources](https://developer.android.com/guide/topics/resources/string-resource?hl=vi

string-array-resources-element)>
<[string-array](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-element)
    name="_stringarrayname_">
    <[item](https://developer.android.com/guide/topics/resources/string-resource?hl=vi
# string-array-item-element)
textstring

9 Một chuỗi số nhiều hoặc số ít. Giá trị này có thể là một tham chiếu đến tài nguyên chuỗi khác. Phải là phần tử con của phần tử


    
    %d song found.
    %d songs found.

1. Lưu ý là bạn phải thoát khỏi dấu nháy đơn và dấu ngoặc kép. Vui lòng xem phần bên dưới để biết thông tin về cách tạo kiểu và định dạng đúng cách các chuỗi.

thuộc tính:


    
    %d song found.
    %d songs found.

9 Từ khoá. Một giá trị cho biết thời điểm nên sử dụng chuỗi này. Các giá trị hợp lệ, với những ví dụ không đầy đủ trong ngoặc đơn: Giá trịMô tả


    Mercury
    Venus
    Earth
    Mars

4Khi ngôn ngữ yêu cầu cách xử lý đặc biệt đối với số 0 (như trong tiếng Ả Rập).


    Mercury
    Venus
    Earth
    Mars

5Khi ngôn ngữ yêu cầu xử lý đặc biệt các số chẳng hạn như số một (như với số 1 trong tiếng Anh và hầu hết ngôn ngữ khác; trong tiếng Nga, bất kỳ số nào kết thúc bằng số 1 nhưng không kết thúc bằng số 11 đều ở trong lớp này).


    Mercury
    Venus
    Earth
    Mars

6Khi ngôn ngữ yêu cầu xử lý đặc biệt các số chẳng hạn như số hai (như với số 2 trong tiếng Wales hoặc 102 trong tiếng Slovenia).


    Mercury
    Venus
    Earth
    Mars

7Khi ngôn ngữ yêu cầu cách xử lý đặc biệt các số "nhỏ" (như với số 2, 3 và 4 trong tiếng Séc; hoặc các số kết thúc bằng số 2, 3 hoặc 4 nhưng không phải là số 12, 13 hoặc 14 trong tiếng Ba Lan).


    Mercury
    Venus
    Earth
    Mars

8Khi ngôn ngữ yêu cầu xử lý đặc biệt các số "lớn" (như các số kết thúc từ 11-99 trong tiếng Malta).


    Mercury
    Venus
    Earth
    Mars

9Khi ngôn ngữ không yêu cầu xử lý đặc biệt về số lượng đã cho (như với tất cả các số trong tiếng Trung, hoặc số 42 trong tiếng Anh). ví dụ: Tệp XML được lưu vào

String string = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

getString%28int%29)`(R.string.hello);

5:


    
    %d song found.
    %d songs found.

Tệp XML được lưu vào


    Znaleziono %d piosenkę.
    Znaleziono %d piosenki.
    Znaleziono %d piosenek.

7:


    Znaleziono %d piosenkę.
    Znaleziono %d piosenki.
    Znaleziono %d piosenek.

Cách sử dụng:

Kotlin

Hello!

0

Java

Hello!

1

Khi sử dụng phương thức


    Znaleziono %d piosenkę.
    Znaleziono %d piosenki.
    Znaleziono %d piosenek.

8, bạn cần phải truyền


    Znaleziono %d piosenkę.
    Znaleziono %d piosenki.
    Znaleziono %d piosenek.

9 hai lần nếu chuỗi của bạn mang có số. Chẳng hạn như đối với chuỗi

Hello!

00, tham số


    Znaleziono %d piosenkę.
    Znaleziono %d piosenki.
    Znaleziono %d piosenek.

9 đầu tiên sẽ chọn chuỗi số nhiều phù hợp, và tham số


    Znaleziono %d piosenkę.
    Znaleziono %d piosenki.
    Znaleziono %d piosenek.

9 thứ hai được chèn vào phần giữ chỗ

Hello!

03. Nếu các chuỗi số nhiều không chứa định dạng chuỗi thì bạn không cần truyền tham số thứ ba tới

Hello!

04.

Định dạng và kiểu

Dưới đây là một số điều quan trọng mà bạn nên biết về cách định dạng và định kiểu đúng cách cho tài nguyên chuỗi.

Xử lý các ký tự đặc biệt

Khi một chuỗi chứa các ký tự có cách sử dụng đặc biệt trong XML, bạn phải thoát các ký tự theo quy tắc thoát XML/HTML chuẩn. Nếu cần thoát một ký tự có ý nghĩa đặc biệt trong Android, bạn nên sử dụng dấu gạch chéo ngược phía trước.

Theo mặc định, Android sẽ thu gọn các chuỗi ký tự có khoảng trắng thành một dấu cách. Bạn có thể tránh trường hợp này bằng cách đặt phần liên quan của chuỗi trong dấu ngoặc kép. Trong trường hợp này, mọi ký tự có khoảng trắng (kể cả các dòng mới) sẽ được giữ nguyên trong vùng đã được đóng ngoặc. Dấu ngoặc kép cũng sẽ cho phép bạn sử dụng dấu nháy đơn lẻ thông thường.

Nhân vật (Các) Biểu mẫu thoát @

Hello!

05 ?

Hello!

06 Dòng mới

Hello!

07 Thẻ

Hello!

08 Ký tự Unicode U+XXXX

Hello!

09 Dấu nháy đơn (

Hello!

10)

Bất kỳ trường hợp nào sau đây:

  • Hello!  
    
    11
  • Đính kèm toàn bộ chuỗi trong dấu ngoặc kép (Chẳng hạn như
    Hello!  
    
    12) Dấu ngoặc kép (

Hello!

13)

Hello!

14

Lưu ý là bạn không thể bao quanh chuỗi bằng dấu nháy đơn.

Việc thu gọn khoảng trắng và ký tự thoát trên Android sẽ xảy ra sau khi tệp tài nguyên của bạn được phân tích cú pháp dưới dạng XML. Tức là

Hello!

15 (dấu cách, dấu chấm câu, dấu cách Unicode Em) đều thu gọn thành một dấu cách duy nhất (

Hello!

16), vì tất cả đều là dấu cách Unicode sau khi tệp được phân tích cú pháp dưới dạng XML. Để giữ nguyên các dấu cách đó, bạn có thể trích dẫn các dấu cách đó (

Hello!

  1. hoặc sử dụng ký tự thoát của Android (

Hello!

18).

Lưu ý: Từ góc nhìn của trình phân tích cú pháp XML, không có sự khác biệt giữa

Hello!

19 và

Hello!

20. Cả hai biểu mẫu đều không cho thấy dấu ngoặc kép nào, nhưng sẽ kích hoạt dấu ngoặc kép giữ nguyên dấu cách của Android (điều này không có tác dụng thực tế trong trường hợp này).

Định dạng chuỗi

Nếu cần định dạng chuỗi, bạn có thể thực hiện bằng cách đặt các đối số định dạng vào tài nguyên chuỗi, như được minh hoạ bằng tài nguyên ví dụ sau.

Hello!

2

Trong ví dụ này, chuỗi định dạng có hai đối số:

Hello!

21 là một chuỗi và

Hello!

22 là một số thập phân. Sau đó, định dạng chuỗi bằng cách gọi

Hello!

23. Ví dụ:

Kotlin

Hello!

3

Java

Hello!

4

Tạo kiểu bằng mã đánh dấu HTML

Bạn có thể thêm kiểu cho chuỗi bằng mã đánh dấu HTML. Ví dụ:

Hello!

5

Các phần tử HTML sau được hỗ trợ:

  • In đậm:
  • In nghiêng: , , ,
  • Văn bản lớn hơn 25%:
  • Văn bản nhỏ hơn 20%:
  • Đặt thuộc tính phông chữ: . Ví dụ về các bộ phông chữ có thể có:
    Hello!  
    
    24,
    Hello!  
    
    25 và
    Hello!  
    
    26.
  • Đặt một bộ phông chữ đơn cách:
  • Gạch ngang chữ: , ,
  • Gạch dưới:
  • Chỉ số trên:
  • Chỉ số dưới:
  • Dấu đầu dòng:
      ,
    • Ngắt dòng:
    • Phép chia:
    • Kiểu CSS:
    • Đoạn:

    Nếu không áp dụng định dạng, bạn có thể trực tiếp thiết lập văn bản TextView bằng cách gọi

    Hello!
    

    27. Tuy nhiên, trong một số trường hợp, có thể bạn muốn tạo một tài nguyên văn bản được định kiểu cũng được dùng làm chuỗi định dạng. Thường thì cách này không hiệu quả vì các phương thức

    Hello!
    

    28 và

    Hello!
    

    23 sẽ tách mọi thông tin về kiểu khỏi chuỗi. Giải pháp cho trường hợp này là viết các thẻ HTML chứa các thực thể thoát, sau đó được khôi phục bằng

    Hello!
    

    30 sau khi định dạng. Ví dụ:

    1. Lưu trữ tài nguyên văn bản đã được tạo kiểu dưới dạng chuỗi thoát HTML:
      Hello!  
      
      6 Trong chuỗi được định dạng này, phần tử
      Hello!  
      
      31 sẽ được thêm. Lưu ý dấu ngoặc mở là ký tự thoát HTML, sử dụng ký hiệu
      Hello!  
      
      32.
    2. Sau đó định dạng chuỗi như bình thường, nhưng cũng gọi

      Hello!  
      
      30 để chuyển đổi văn bản HTML thành văn bản được tạo kiểu:

      Kotlin

      Hello!  
      
      7

      Java

      Hello!  
      
      8

    Vì phương thức

    Hello!
    

    30 định dạng mọi thực thể HTML, hãy nhớ thoát mọi ký tự HTML có thể có trong chuỗi mà bạn sử dụng bằng văn bản đã định dạng, bằng cách sử dụng

    Hello!
    

    35. Chẳng hạn như nếu bạn đang định dạng một chuỗi có chứa các ký tự như "<" hoặc "&", thì các chuỗi này phải được thoát trước khi định dạng, để khi chuỗi đã định dạng được truyền qua

    Hello!
    

    30 thì các ký tự sẽ xuất hiện theo cách viết ban đầu. Ví dụ:

    Kotlin

    Hello!
    

    9

    Java

    android:layout_width="fill_parent" android:layout_height="wrap_content" **android:text="@string/hello"** /> 0

    Tạo kiểu bằng các spannable

    Hello!
    

    37 là một đối tượng văn bản mà bạn có thể tạo kiểu bằng các thuộc tính kiểu chữ như màu sắc và độ đậm của phông chữ. Bạn sử dụng

    Hello!
    

    38 để tạo văn bản rồi sau đó áp dụng các kiểu đã xác định trong gói

    Hello!
    

    39 cho văn bản đó.

    Bạn có thể sử dụng các phương thức trợ giúp sau đây để thiết lập phần lớn công việc tạo văn bản có span:

    Kotlin

    android:layout_width="fill_parent" android:layout_height="wrap_content" **android:text="@string/hello"** /> 1

    Java

    android:layout_width="fill_parent" android:layout_height="wrap_content" **android:text="@string/hello"** /> 2

    Các phương thức

    Hello!
    

    40,

    Hello!
    

    41 và

    Hello!
    

    42 sau đây bao gồm những phương thức trợ giúp ở trên và minh hoạ các ví dụ cụ thể về cách áp dụng kiểu được xác định trong gói

    Hello!
    

    39. Bạn có thể tạo các phương thức tương tự để thực hiện các kiểu văn bản khác.

    Kotlin

    android:layout_width="fill_parent" android:layout_height="wrap_content" **android:text="@string/hello"** /> 3

    Java

    android:layout_width="fill_parent" android:layout_height="wrap_content" **android:text="@string/hello"** /> 4

    Sau đây là ví dụ về cách liên kết các phương thức này với nhau để áp dụng nhiều kiểu cho từng từ trong một cụm từ:

    Kotlin

    android:layout_width="fill_parent" android:layout_height="wrap_content" **android:text="@string/hello"** /> 5

    Java

    android:layout_width="fill_parent" android:layout_height="wrap_content" **android:text="@string/hello"** /> 6

    Mô-đun core-ktx cũng chứa các hàm mở rộng giúp việc sử dụng span thậm chí còn dễ dàng hơn. Bạn có thể xem tài liệu về gói android.text trên GitHub để tìm hiểu thêm.

    Để biết thêm thông tin về cách sử dụng span, vui lòng xem các đường liên kết sau:

    • Tạo kiểu văn bản Spantastic bằng Span
    • Tìm hiểu về span

    Tạo kiểu bằng chú thích

    Bạn có thể tạo kiểu phức tạp hoặc tuỳ chỉnh bằng cách sử dụng lớp

    Hello!
    

    44 cùng với thẻ

    Hello!
    

    45 trong các tệp tài nguyên strings.xml. Thẻ chú thích cho phép bạn đánh dấu các phần của chuỗi để định kiểu tuỳ chỉnh bằng cách xác định các cặp khoá-giá trị tuỳ chỉnh trong XML mà khung đó chuyển đổi thành các span

    Hello!
    

    46. Sau đó, bạn có thể truy xuất các chú thích này và sử dụng khoá và giá trị để áp dụng kiểu.

    Khi tạo các chú thích, hãy đảm bảo bạn thêm thẻ

    Hello!
    

    45 vào tất cả các bản dịch của chuỗi trong mọi tệp strings.xml.

    Tính trung bình cộng hai số trong android năm 2024
    Áp dụng một kiểu chữ tuỳ chỉnh cho từ “văn bản” trong tất cả ngôn ngữ

    Chẳng hạn như thêm kiểu chữ tuỳ chỉnh

    1. Thêm thẻ
      Hello!  
      
      45 và xác định cặp khoá-giá trị. Trong trường hợp này, khoá là phông chữ, và giá trị là loại phông chữ chúng ta muốn sử dụng: title_emphasis android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> 7
    2. Tải tài nguyên chuỗi và tìm các chú thích bằng khoá phông chữ. Sau đó, tạo một span tuỳ chỉnh và thay thế span hiện có.

      Kotlin

      android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> 8

      Java

      android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> 9

    Nếu đang dùng nhiều lần cùng một văn bản, bạn nên tạo đối tượng SpannableString một lần và sử dụng lại nếu cần để tránh các vấn đề tiềm ẩn về hiệu suất và bộ nhớ.

    Để xem thêm ví dụ về cách sử dụng chú thích, vui lòng xem phần Tạo kiểu cho văn bản quốc tế hoá trong Android

    Các span chú thích và phân vùng văn bản

    Vì các span

    Hello!
    

    46 cũng là

    Hello!
    

    50, các cặp khoá-giá trị sẽ được phân loại lẫn không phân loại. Miễn là người nhận phân vùng biết cách diễn giải các chú thích, bạn có thể sử dụng các span

    Hello!
    

    46 để áp dụng kiểu tuỳ chỉnh cho văn bản đã được phân vùng.

    Để duy trì kiểu tuỳ chỉnh khi chuyển văn bản đến Gói ý định, trước tiên, bạn cần thêm các span

    Hello!
    

    46 vào văn bản. Bạn có thể thực hiện việc này trong các tài nguyên XML thông qua thẻ , như minh hoạ trong ví dụ ở trên hoặc trong mã bằng cách tạo một

    Hello!
    

    46 mới và thiết lập dưới dạng span như sau:

    Kotlin

    val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

    getString%28int%29)`(R.string.hello)

    0

    Java

    val string: String = `[getString](https://developer.android.com/reference/android/content/Context?hl=vi

    getString%28int%29)`(R.string.hello)

    1

    Truy xuất văn bản từ

    Hello!
    

    54 dưới dạng

    Hello!
    

    55 rồi phân tích cú pháp các chú thích đính kèm, như trong ví dụ trên.