2011-07-07 10 views
0

eclipseでAndroidアプリを開発しています。Android - リストにアプリアイコンをリストして選択して実行

私がインストールされたアプリケーションを示すリストを持って、リストはこれです:

  //Listar apps instaladas 
     final ListView list1 = (ListView) findViewById(R.id.list1); 
     ArrayList results = new ArrayList(); 
     PackageManager pm = this.getPackageManager(); 
     Intent inte = new Intent(Intent.ACTION_MAIN, null); 
     inte.addCategory(Intent.CATEGORY_LAUNCHER); 
     List<ResolveInfo> list = pm.queryIntentActivities(inte, PackageManager.PERMISSION_GRANTED); 
     for (ResolveInfo rInfo : list) { 
      results.add(rInfo.activityInfo.applicationInfo.loadLabel(pm).toString()); 
     } 
      list1.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, results)); 

私の質問は以下のとおりです。 私が代わりにアイコン名を示すのことを行うことができますどのように?私はそれを行う場合

results.add(rInfo.activityInfo.applicationInfo.loadLabel(pm).toString()); 

は 「アプリケーションの名前@ android.graphics.drawable」私を示し、どのように私は、リストをクリックすることで、アプリケーションを実行するために行うことができますか?私はいくつかの試みを試みましたが、私はアプリケーションのエラーを作ります。 ありがとう!

答えて

0

results.add(rInfo.activityInfo.applicationInfo.loadLabel(pm).toString()); このコード行では、アプリケーションのラベルを読み込んでいると仮定しているので、loadNameなどを試してみてください。

リストをクリックするとエラーが発生しますか?これも役に立ちます:)

+0

こんにちは!私は名前へのアクセスを知っていません、私の方法はラベル、アイコン、desc、ロゴ、メタデータだけを取得します... アイテムをクリックすると、アプリケーションが「アプリケーションが予期せず停止しました」と表示されます – Ghaelito

+1

このコード: PackageManager pm = this.getPackageManager(); while(i.hasNext()){ ActivityManager.RunningAppProcessInfo info =(ActivityManager.RunningAppProcessInfo)(i.next()); try { CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName、PackageManager.GET_META_DATA)); Log.w( "LABEL"、c.toString()); 動作中のアプリケーション名が表示されますが、少しの作業で画面上のすべてのアプリケーション名を取得できます。 エラーについては、DDMSをチェックしてください。私たちとあなたの両方が情報を提供するのに役立ちます。=) – kevin

関連する問題