Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 有目的地开展活动_Android_Android Intent - Fatal编程技术网

Android 有目的地开展活动

Android 有目的地开展活动,android,android-intent,Android,Android Intent,我有一个ListApp活动,它列出了所有已安装的应用程序,我在这里尝试的是当用户从列表中选择一个应用程序时,它应该获得关于所选应用程序的意图/信息,现在当用户单击按钮1时,它应该打开先前选择的应用程序(借助先前检索的意图) ListApp活动: @Override public void onClick(View arg0) { // TODO Auto-generated method stub switch (arg0.getId()){ case R.id.b

我有一个ListApp活动,它列出了所有已安装的应用程序,我在这里尝试的是当用户从列表中选择一个应用程序时,它应该获得关于所选应用程序的意图/信息,现在当用户单击按钮1时,它应该打开先前选择的应用程序(借助先前检索的意图)

ListApp活动:

 @Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub

    switch (arg0.getId()){

    case R.id.button1:

        //startActivity(app.intent);
        //should start app with the help of info received by selecting app from the  list
        break;
    }


    @Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

//ApplicationInfo app = (ApplicationInfo) parent.getItemAtPosition(position);
    //startActivity(app.intent);        

//instead of launching app, I would like to get the info about the selected app & use it(start app) when clicking button1
}

谢谢大家:)

如果您知道应用程序的软件包名称,请从列表中的索引中获取活动信息

List<ResolveInfo> rInfo =  getPackageManager().queryIntentActivities(new Intent(Intent.ACTION_MAIN),MATCH_DEFAULT_ONLY);

for(ResolveInfo resolveInfo:rInfo){
    if(resolveInfo.activityInfo.packageName.equals("package")){
如上所述设置组件

公共组件名(字符串包、字符串cls)

在API级别1中添加创建新组件标识符

Parameters pkg组件所在包的名称。 不能为空。cls pkg中的类的名称 实现该组件。不能为空


问题是什么?@Ritesh让我给你举个例子,假设用户从列表中选择浏览器应用程序,现在当用户单击按钮1时,它应该打开浏览器应用程序。实际上button1是在做其他的活动,我只是想保持简单。希望这有帮助。首先感谢Tarun花时间编写代码,代码不是从“com.example”包打开“activity”吗?如果用户选择让我们说计算器应用程序。如果我的最新答案对UNO有帮助,那就谢谢你了。这并不是我想要的,但无论如何,谢谢Tarun的帮助。
List<ResolveInfo> rInfo =  getPackageManager().queryIntentActivities(new Intent(Intent.ACTION_MAIN),MATCH_DEFAULT_ONLY);

for(ResolveInfo resolveInfo:rInfo){
    if(resolveInfo.activityInfo.packageName.equals("package")){
        ComponentName chosenName = new ComponentName(
        resolveInfo.activityInfo.packageName,
        resolveInfo.activityInfo.name);
        break;
     }
 }

final Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setComponent(chosenName);
startActivity(intent);