簡體   English   中英

動態快捷方式可在Android中打開片段

[英]Dynamic Shortcuts to open Fragments in Android

嗨,我正在開發一種具有兩種用戶類型的應用程序:管理員和普通用戶。 管理員顯然比普通用戶具有更多的操作,因此我需要使用動態快捷方式,具體取決於創建快捷方式的用戶。

至此,所有內容都已編纂並可以正常工作。 但是,在分配Intent ,甚至給MainActivity我都收到一個錯誤。

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.motusk.Monit", "com.motusk.Monit.activity.MainActivity"));

shortcut.add(new ShortcutInfo.Builder(this, "ub")
   .setShortLabel("Location")
   .setLongLabel("Location")
   .setIcon(Icon.createWithResource(this, R.drawable.bg))
   .setIntent(intent)
   .build());

我也嘗試過:

Intent intent = new Intent(this, MainActivity.class);

但是,在兩種情況下我都會收到錯誤:

java.lang.RuntimeException:無法啟動活動ComponentInfo {com.motusk.Monit / com.motusk.Monit.activity.MainActivity}:java.lang.NullPointerException:必須設置意圖的操作

我需要幫助的是:

1)如何為MainActivity創建正確的Intent

2)如何知道按下了哪個快捷鍵? (取決於按下哪個快捷方式打開某個Fragment將在MainActivity執行,這就是為什么我需要知道哪個快捷方式被按下的原因)。

根據錯誤消息,您的Intent必須使用setAction設置操作:

intent.setAction("LOCATION_SHORTCUT");

然后,您可以在“活動”中檢查操作:

String action = getIntent() != null ? getIntent().getAction() : null;
if ("LOCATION_SHORTCUT".equals(action)) {
  // Show the correct fragment
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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