[英]How to open a dialog from Quick settings Tile?
我正在為 Quick settings Tile 開發一個應用程序。 當用戶單擊磁貼時,我想打開一個布局或一個自定義對話框,以哪個是一個不錯的選擇。 假設這是一個自定義對話框。 我嘗試了很多例子,但我沒有運氣!
先感謝您。
您只需要使用 Tile 服務的@Override方法。
@Override
public void onClick() {
super.onClick();
Tile tile = getQsTile();
switch (tile.getState()) {
case Tile.STATE_INACTIVE:
// write code for start service or open activity according to your prefrrance
StaticUtils.closeNotificationTopPanel(this);
tile.setLabel(getString(R.string.service_running));
updateTileState(Tile.STATE_ACTIVE);
break;
case Tile.STATE_ACTIVE:
updateTileState(Tile.STATE_INACTIVE);
break;
default:
updateTileState(Tile.STATE_INACTIVE);
break;
}
}
當您單擊磁貼服務按鈕時,您必須關閉通知面板,下面的代碼將對此有所幫助。
public static void closeNotificationTopPanel(Context context) { Intent closeIntent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); context.sendBroadcast(closeIntent); }
下面的方法將幫助您根據狀態更改按鈕的磁貼狀態和名稱。
private void updateTileState(int state) { Tile tile = getQsTile(); if (tile != null) { tile.setState(state); Icon icon = tile.getIcon(); switch (state) { case Tile.STATE_ACTIVE: icon.setTint(Color.WHITE); break; case Tile.STATE_INACTIVE: case Tile.STATE_UNAVAILABLE: default: icon.setTint(Color.GRAY); break; } tile.updateTile(); } }
嘗試使用此鏈接: http : //wintechtutorials.com/blog/android-customize-quick-setting-tiles-7-0-nougat/
在此鏈接中,他們使用默認警報對話框。 嘗試根據需要創建自定義對話框。 希望這對你有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.