使点击列表项的android [英] enable clicking on list items android
本文介绍了使点击列表项的android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的code显示其安装在ListView特定权限的应用程序。我想打开的设置,你可以卸载的每个项目(应用程序)。如何做呢应用程序?
这里是打开应用程序的设置片段
的packageName =com.wagtailapp;
尝试{
//打开特定的应用程序信息页面:
意向意图=新意图(
android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse(套餐+的packageName));
startActivity(意向);
}赶上(ActivityNotFoundException E){
// e.printStackTrace();
//打开通用应用程序页面:
意向意图=新意图(
android.provider.Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS);
startActivity(意向);
这里是我的活动
公共类MainActivity延伸活动{ ArrayList的<串GT;结果=新的ArrayList<串GT;(); @覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
getInstalledApps(本);
ArrayAdapter适配器=新ArrayAdapter<串GT;(这一点,R.layout.activity_listview,结果); ListView控件的ListView =(ListView控件)findViewById(R.id.mobile_list);
listView.setAdapter(适配器);
} 私人的ArrayList<串GT; getInstalledApps(上下文的背景下){
软件包管理系统软件包管理系统= context.getPackageManager();
清单< PackageInfo> APPLIST = packageManager.getInstalledPackages(0);
迭代器< PackageInfo>它= applist.iterator();
而(it.hasNext()){
PackageInfo PK =(PackageInfo)it.next();
如果((pk.applicationInfo.flags&放大器;!ApplicationInfo.FLAG_SYSTEM)= 0){
Log.v(使用互联网=系统的应用,+ pk.applicationInfo.loadLabel(软件包管理系统));
继续;
} 如果(PackageManager.PERMISSION_GRANTED ==软件包管理系统.checkPermission(Manifest.permission.INTERNET,pk.packageName)||
PackageManager.PERMISSION_GRANTED ==软件包管理系统.checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE,pk.packageName))
results.add(+ pk.applicationInfo.loadLabel(软件包管理系统));
} Log.v(,results.toString使用Internet =程序()); 返回结果;
}
}
解决方案
你的onCreate()以下listView.setAdapter(适配器)在本贴code;
listView.setOnItemClickListener(新OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图<>母公司,观景,INT位置,
长ID){
字符串的packageName = results.get(位置);
意向意图=新意图(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse(套餐+的packageName));
startActivity(意向);
}
});
my code displays installed apps having specific permissions in a listview. i want to open the settings where you can uninstall apps on each list item (app) .How do i do that?
here is the snippet for opening app's settings
packageName = "com.wagtailapp";
try {
// Open the specific App Info page:
Intent intent = new Intent(
android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + packageName));
startActivity(intent);
} catch (ActivityNotFoundException e) {
// e.printStackTrace();
// Open the generic Apps page:
Intent intent = new Intent(
android.provider.Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS);
startActivity(intent);
here is my activity
public class MainActivity extends Activity {
ArrayList<String> results = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getInstalledApps(this);
ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, results);
ListView listView = (ListView) findViewById(R.id.mobile_list);
listView.setAdapter(adapter);
}
private ArrayList<String> getInstalledApps(Context context) {
PackageManager packageManager = context.getPackageManager();
List<PackageInfo> applist = packageManager.getInstalledPackages(0);
Iterator<PackageInfo> it = applist.iterator();
while (it.hasNext()) {
PackageInfo pk = (PackageInfo) it.next();
if ((pk.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
Log.v("system app using internet = ", ""+pk.applicationInfo.loadLabel(packageManager));
continue;
}
if (PackageManager.PERMISSION_GRANTED == packageManager .checkPermission(Manifest.permission.INTERNET, pk.packageName) ||
PackageManager.PERMISSION_GRANTED == packageManager .checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE, pk.packageName))
results.add("" + pk.applicationInfo.loadLabel(packageManager));
}
Log.v("app using internet = ", results.toString());
return results;
}
}
解决方案
Paste this code inside your onCreate() below listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String packageName = results.get(position);
Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("package:" + packageName));
startActivity(intent);
}
});
这篇关于使点击列表项的android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文