Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Sử dụng kiểu InboxStyle cho thông báo Android

Giới thiệu

InboxStyle là một kiểu hiển thị thông báo mở rộng cho phép hiển thị nhiều dòng văn bản (tối đa 7 dòng) trong khu vực mở rộng của thông báo. Phù hợp cho email, tin nhắn, hoặc danh sách mục ngắn.

Các bước thực hiện

Bước 1: Tạo dự án mới

Tạo project Android Studio mới.

Bước 2: Giao diện (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnCreateNotification"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentEnd="true"
        android:layout_centerInParent="true"
        android:text="Tạo thông báo InboxStyle" />

</RelativeLayout>

Bước 3: MainActivity với InboxStyle (src/MainActivity.java)

package app.tutorialspoint.com.notifyme;

import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class MainActivity extends AppCompatActivity {
    public static final String NOTIFICATION_CHANNEL_ID = "10001";
    private final static String default_notification_channel_id = "default";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void createNotification(View view) {
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(MainActivity.this, default_notification_channel_id);

        mBuilder.setContentTitle("Thông báo hộp thư");
        // ÁP DỤNG INBOXSTYLE
        mBuilder.setStyle(new NotificationCompat.InboxStyle()
            .addLine("Email 1: Chào bạn, đây là tin nhắn đầu tiên")
            .addLine("Email 2: Cuộc họp vào 2pm hôm nay")
            .addLine("Email 3: Đừng quên deadline dự án")
            .addLine("Email 4: Mã xác thực: 123456")
            .addLine("Email 5: Thông báo hệ thống")
            .setBigContentTitle("5 tin nhắn mới")
            .setSummaryText("hopthu@company.com"));

        mBuilder.setContentText("Bạn có 5 tin nhắn mới");
        mBuilder.setTicker("Thông báo hộp thư mới");
        mBuilder.setSmallIcon(R.drawable.ic_launcher_foreground);
        mBuilder.setAutoCancel(true);

        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
            int importance = NotificationManager.IMPORTANCE_HIGH;
            NotificationChannel notificationChannel = new NotificationChannel(
                NOTIFICATION_CHANNEL_ID, "NOTIFICATION_CHANNEL_NAME", importance);
            mBuilder.setChannelId(NOTIFICATION_CHANNEL_ID);
            assert mNotificationManager != null;
            mNotificationManager.createNotificationChannel(notificationChannel);
        }

        assert mNotificationManager != null;
        mNotificationManager.notify((int) System.currentTimeMillis(), mBuilder.build());
    }
}

Bước 4: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.tutorialspoint.com.notifyme">

    <uses-permission android:name="android.permission.VIBRATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

Chạy ứng dụng

Chạy app, nhấn nút tạo thông báo. Kéo xuống thanh thông báo để xem dạng thu gọn, sau đó vuốt xuống thêm để xem dạng mở rộng với danh sách 5 dòng.

Sử dụng kiểu InboxStyle cho thông báo Android Sử dụng kiểu InboxStyle cho thông báo Android

Các phương thức chính của InboxStyle

  • addLine(CharSequence) - Thêm một dòng vào danh sách (tối đa 7 dòng)
  • setBigContentTitle(CharSequence) - Tiêu đề khi mở rộng
  • setSummaryText(CharSequence) - Văn bản tóm tắt ở cuối danh sách