Как добавить значок пакета в arraylist - PullRequest
0 голосов
/ 04 декабря 2011

Как получить значок приложения, полученный из результата, в arraylist?

Если я использую attrs.icon("Package Name", pkg.applicationInfo.loadIcon(getPackageManager()));

, он показывает эту ошибку Значок метода (String, Drawable) не определено для типа Map

, если я использую attrs.put("Package Name", pkg.applicationInfo.loadIcon(getPackageManager()));

, это показывает эту ошибку Метод put (String, String) в типе Map не применимдля аргументов (String, Drawable)

я пытался

Drawable icon;

attrs.icon("Package Name", pkg.applicationInfo.loadIcon(getPackageManager()));

Drawable Icon = pm.getApplicationIcon(pkg.applicationInfo);

все выдают ошибку при затмении

Вот код

protected void onPostExecute(List < PackageInfo > result) {

    // Here you will have all the setAdapter related code
    List < PackageInfo > adPackages = result;
    PackageManager pm = getPackageManager();

    List < Map < String, String >> data = new ArrayList < Map < String, String >> (
    adPackages.size());

    for (PackageInfo pkg: adPackages) {
        Map < String, String > attrs = new HashMap < String, String > ();

        attrs.put("App Name", pm.getApplicationLabel(pkg.applicationInfo).toString());
        attrs.put("Package Name", pkg.packageName);
        //Drawable icon;
        //attrs.icon("Package Name", pkg.applicationInfo.loadIcon(getPackageManager()));
        // Drawable Icon = pm.getApplicationIcon(pkg.applicationInfo);
        data.add(attrs);

    }

    String[] from = new String[] {
        "App Name", "Package Name"
    };
    int[] to = new int[] {
        R.id.text1, R.id.text2
    };
    SimpleAdapter adapter = new SimpleAdapter(
    AppsInspectorActivity.this, data, R.layout.two_line_list_item, from, to);

    ListView mList = (ListView) findViewById(R.id.l_list);

    mList.setAdapter(adapter);
    mPackages = adPackages;

}
}

1 Ответ

1 голос
/ 04 декабря 2011

attrs - это карта, поэтому в ней нет метода, называемого «значок». Вам нужно просто сделать attrs.put("icon",pkg.applicationInfo.icon+""); +"" есть, потому что pkg.applicationInfo.icon является целым числом, поэтому вам нужно преобразовать его в строку, прежде чем вы сможете поместить его в карту, параметризованную

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...