2011-05-20 40 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); 
} 
相关问题