0

我想为我的应用程序实现多个动态快捷方式,但问题是它只允许我实现一个快捷方式。

在我的代码中,您会看到两个快捷方式,但应用程序只生成一个快捷方式。

有人可以查看我的代码并建议我在哪里进行更改吗?

在这里它只显示了一个动态快捷方式 科特林

package com.szakes1.makdolannative.activities

import android.content.Intent
import android.content.pm.ShortcutInfo
import android.content.pm.ShortcutManager
import android.graphics.drawable.Icon
import android.net.Uri
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.core.content.ContextCompat
import androidx.viewpager.widget.PagerAdapter
import androidx.viewpager.widget.ViewPager
import com.google.android.material.tabs.TabLayout
import com.szakes1.makdolannative.R
import com.szakes1.makdolannative.adapters.ViewPagerAdapter
import java.util.*

class MainActivity : AppCompatActivity() {

    private lateinit var tabLayout: TabLayout
    private lateinit var viewPager: ViewPager
    private lateinit var pagerAdapter: PagerAdapter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)



        if (Build.VERSION.SDK_INT >= 25) {
            val shortcutManager = getSystemService<ShortcutManager>(ShortcutManager::class.java)
            val hamburgerShortcut = ShortcutInfo.Builder(applicationContext, "hamburger")
                .setShortLabel("Hamburger")
                .setLongLabel("Wygeneruj kod dla hamburgera")
                .setIcon(Icon.createWithResource(applicationContext, R.drawable.ic_hamburger))
                .setIntent(Intent(applicationContext, GeneratedCouponActivity::class.java).setAction(Intent.ACTION_VIEW).putExtra("coupon_image", R.drawable.coupon_hamburger))
                .build()

            val icecreamShortcut = ShortcutInfo.Builder(applicationContext, "hamburger")
                .setShortLabel("Lody")
                .setLongLabel("Wygeneruj kod dla lodów")
                .setIcon(Icon.createWithResource(applicationContext, R.drawable.ic_ice_cream))
                .setIntent(Intent(applicationContext, GeneratedCouponActivity::class.java).setAction(Intent.ACTION_VIEW).putExtra("coupon_image", R.drawable.coupon_icecream))
                .build()

            shortcutManager!!.dynamicShortcuts = Arrays.asList(icecreamShortcut, hamburgerShortcut)
        }



        // Sets color for Navigation and Status Bar
        if (Build.VERSION.SDK_INT >= 21) {
            val color = ContextCompat.getColor(applicationContext, R.color.colorPrimaryDark)

            window.statusBarColor = color
            window.navigationBarColor = color
        }

        tabLayout = findViewById(R.id.tabLayout)
        viewPager = findViewById(R.id.viewPager)
        pagerAdapter = ViewPagerAdapter(supportFragmentManager, 5)

        viewPager.adapter = pagerAdapter
        tabLayout.setupWithViewPager(viewPager, true)
    }
}


4

1 回答 1

2

他们都被赋予了相同的 ID“汉堡包”。

给另一个快捷方式一个唯一的 ID。

见第二个参数:

val icecreamShortcut = ShortcutInfo.Builder(applicationContext, "hamburger")
于 2019-11-11T10:57:18.127 回答