java - 在 AutoCompleteTextView 中单击应用程序名称时显示包名称

标签 java android

我创建了一个 AutoCompleteTextView,显示所有已安装的应用程序。

我还创建了一个Toast (并将其实现为 onItemClickListener ),这将显示所选应用程序的 PackageName

如何从包管理器中检索包名称?请帮忙

        final AutoCompleteTextView lView;
        final ArrayList results;
        List<ResolveInfo> list;
        final String pname = "";


        results = new ArrayList();
    lView = (AutoCompleteTextView)this.findViewById(R.id.languages);
    PackageManager pm = this.getPackageManager();




    Intent intent = new Intent(Intent.ACTION_MAIN, null);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);

    list = pm.queryIntentActivities(intent,
        PackageManager.PERMISSION_GRANTED);
    for (ResolveInfo rInfo : list) {
        results.add(rInfo.activityInfo.applicationInfo.loadLabel(pm)
                .toString());
        Log.w("Installed Applications", rInfo.activityInfo.applicationInfo
                .loadLabel(pm).toString());
    }
    lView.setAdapter(new ArrayAdapter(this,
            android.R.layout.simple_list_item_1, results));



    lView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(getApplicationContext(), "PACKAGENAME", Toast.LENGTH_SHORT).show();
        }
  });

最佳答案

您将从 ResolveInfo 获取包裹信息.

您有列表列表; 因此,将您的 ItemClickListener 实现更改为此

lView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String packageName = list.get(position).activityInfo.applicationInfo.packageName;
            Toast.makeText(getApplicationContext(), packageName, Toast.LENGTH_SHORT).show();
    }
});

关于java - 在 AutoCompleteTextView 中单击应用程序名称时显示包名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23934421/

相关文章:

java - 错误 : Failed to resolve: com. google.firebase :firebase-core:18. 1.0 在项目结构对话框中显示受影响的模块:app

java - 尝试从 ID3v1 标签读取流派时出现 NullPointerException

java - 关系 OneToOne 的 PSQLException : relation "car_model" does not exist

java - 使用 Apache Batik 在 SVG 中的 Linux 上设置 Windows 字体

java - 如何使用jSTL获取jsp中日历类型方法中设置的日期?

android - TabLayout Indicator 自定义

Android/iPhone 上的 JavaScript 调试

java - 如何为 Android 和 Java 版本构建 Maven POM 文件

java - FAT JAR 外部的 Spring Boot 属性

c# - Unity3d开发: JNI ERROR (app bug): accessed stale local reference 0x200001 (index 0 in a table of size 0)