OnItemClickListener传递选择的方法的应用程序包名称...帮助 [英] OnItemClickListener that passes the Package Name of the app selected to a method... Help
本文介绍了OnItemClickListener传递选择的方法的应用程序包名称...帮助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
更新:现在找包名称,而不是PID
UPDATE: Now looking for Package Name as opposed to PID
我有diplays设备上的所有安装的应用程序的列表视图的应用程序。我想创建一个选择传递给方法的应用程序软件包名OnItemClickListener。
I have an app that diplays a listview of all the installed apps on the device. I want to create an OnItemClickListener that passes the Package Name of the app selected to a method.
下面是我的code:
public class Main extends ListActivity {
private static final int ACTIVITY_CREATE=0;
public static final int Menu1 = Menu.FIRST;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
final PackageManager pm = this.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
final ArrayList<ResolveInfo> list =
(ArrayList<ResolveInfo>) pm.queryIntentActivities(intent,
PackageManager.PERMISSION_GRANTED);
for (ResolveInfo rInfo : list)
{
Log.i("Installed Applications " + rInfo.activityInfo.
applicationInfo.loadLabel(pm).toString(), null);
}
final ArrayAdapter<ResolveInfo> adapter =
new ArrayAdapter<ResolveInfo>(this, R.layout.list_item, list)
{
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
convertView = LayoutInflater.from(parent.getContext()).
inflate(R.layout.list_item, parent, false);
final String text = list.get(position).activityInfo.
applicationInfo.loadLabel(pm).toString();
((TextView)convertView.findViewById(R.id.text)).setText(text);
final Drawable drawable = list.get(position).activityInfo.applicationInfo.loadIcon(pm);
((ImageView)convertView.findViewById(R.id.image)).setImageDrawable(drawable);
return convertView;
}
};
setListAdapter(adapter);
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// On Item Click Activity
// This is where I would like to pass the package name to a method
}
});
}
任何帮助将大大AP preciated!
Any help would be greatly appreciated!
推荐答案
您可以检索的 activityInfo
成员包名的 ResolveInfo
实例,其项目您刚刚点击:
You can retrieve the package name for the activityInfo
member of the ResolveInfo
instance whose item you just clicked on:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
final String packageName = list.get(position).activityInfo.packageName;
Log.i("PACKAGE", packageName);
//TODO: Pass this packageName to a method
}
});
这篇关于OnItemClickListener传递选择的方法的应用程序包名称...帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文