簡體   English   中英

如何從快速設置平鋪打開對話框?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM