したがって、ユーザーがアプリ名を選択したときに取得できる(TextViewとImageViewを備えたカスタムアダプターを使用して)ListView内にパッケージ名を保存する方法はありますか。
データはすでにカスタムアダプタにあります。このサンプルプロジェクトのように、あなたはおそらくあなたが戻ってきたArrayAdapter
上でを使用しています:List<ResolveInfo>
queryIntentActivities()
List<ResolveInfo> launchables=pm.queryIntentActivities(main, 0);
Collections.sort(launchables, new ResolveInfo.DisplayNameComparator(pm));
adapter=new AppAdapter(pm, launchables);
(ここでAppAdapter extends ArrayAdapter<ResolveInfo>
)
その場合、アダプターからアプリを起動するために必要な情報を取得します。
@Override
protected void onListItemClick(ListView l, View v,
int position, long id) {
ResolveInfo launchable=adapter.getItem(position);
ActivityInfo activity=launchable.activityInfo;
ComponentName name=new ComponentName(activity.applicationInfo.packageName,
activity.name);
Intent i=new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
i.setComponent(name);
startActivity(i);
}