2011-05-20 52 views
3

我想添加一個按鈕到我的應用程序。點擊時,我想啓動一個選擇對話框,顯示所有快捷方式或已安裝​​的應用程序。選擇一個應該永久設置按鈕來啓動該應用程序。如何製作可自定義的按鈕以啓動應用程序?

我知道如何使用packagemanager獲取安裝的應用程序的列表:

PackageManager pm = getPackageManager(); 
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); 

,但我真的需要藉此和使用ListAdapter並從頭開始創建一個單獨的對話框?

我覺得我已經看到了在其他應用這個選擇菜單多次(比如,當你去添加快捷方式,或者在谷歌的汽車主頁應用程序時,你添加一個新的快捷方式啓動任何應用程序)。有沒有股票的方式來使用此快捷方式選擇菜單?

我已經遍佈搜查這些論壇,否則無法找到。任何幫助都感激不盡。謝謝。

回答

1

但我真的需要採取這種做法,並使用ListAdapter並從頭創建一個單獨的對話框?

對於選擇一個應用程序,是的。

有沒有股票的方式來使用這個快捷鍵選擇菜單?

這「快捷菜單中選擇」不選擇一個應用程序。它正在選擇一個活動,可能使用ACTION_PICK_ACTIVITY

1

對於那些有興趣,這裏是如何我最終完成它:

當您創建的意圖mainIntent(在下面的代碼),並使用ACTION_MAIN和addCategory CATEGORY_LAUNCHER,您可以將其添加爲pickIntent額外的。這樣做會縮小選擇器菜單以僅顯示已安裝的應用程序。

下面是一些代碼來獲得一個簡單的啓動按鈕會:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    //rename R.id.plusbutton to match up with your button in xml 
    Button plusButton = (Button)findViewById(R.id.plusbutton); 

    plusButton.setOnClickListener(new View.OnClickListener() {   

    @Override 
    public void onClick(View view) { 
     Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); 
     mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);    
     Intent pickIntent = new Intent(Intent.ACTION_PICK_ACTIVITY); 
     pickIntent.putExtra(Intent.EXTRA_INTENT, mainIntent); 
     int requestCode = 1; 
     //rename Main to your class or activity 
     Main.this.startActivityForResult(pickIntent, requestCode); 
     } 
    }); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (intent != null) 
     startActivity(intent); 
} 
相關問題