Tạo Notification Direct Reply trong Android
Android Notification Direct Reply cho phép chúng ta có thể reply nhanh tin nhắn trong notification của hệ thống. Notification Direct Reply rất phổ biến trong các ứng dụng chat cần reply tức thì như Whatsapp hay Facebook messenger. Kể từ phiên bản Android Nougat chúng ta được cung cấp thêm một vài ...
Android Notification Direct Reply cho phép chúng ta có thể reply nhanh tin nhắn trong notification của hệ thống. Notification Direct Reply rất phổ biến trong các ứng dụng chat cần reply tức thì như Whatsapp hay Facebook messenger. Kể từ phiên bản Android Nougat chúng ta được cung cấp thêm một vài tính năng mới như Inline Reply Actions và Bundle Notifications... Bắt đầu thôi nào!
Giao diện
Chúng ta sẽ làm một sample đơn giản với một button, sau khi click vào button đó thì sẽ có notification và chúng ta sẽ reply ngay trên notification đó. Trong activity_main.xml sẽ có 2 control như sau:
<Button android:layout_awidth="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" android:background="@color/colorAccent" android:text="Make notification" android:textColor="#FFF" android:id="@+id/btn_noti" android:onClick="makeNoti"/> <TextView android:id="@+id/txt_inline_reply" android:layout_awidth="wrap_content" android:layout_height="wrap_content" android:text="Replied text will be displayed here" android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@+id/btn_noti" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" android:layout_marginRight="8dp" app:layout_constraintRight_toRightOf="parent" />
Chức năng
Với button có sự kiện onClick="makeNoti", chúng ta sẽ implement sự kiện này trong MainActivity. Hàm onCreate của MainActivity sẽ chỉ findViewById như bình thường
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnBasicInlineReply = (Button) findViewById(R.id.btn_noti); txtReplied = (TextView) findViewById(R.id.txt_inline_reply); }
Sự kiện onClick của button sẽ tạo notification, mình viết trong một riêng cho đỡ dài