Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 启用单击列表项_Android - Fatal编程技术网

Android 启用单击列表项

Android 启用单击列表项,android,Android,“我的代码”在列表视图中显示具有特定权限的已安装应用。我想打开您可以卸载每个列表项(应用)上的应用的设置。我该怎么做 以下是打开应用程序设置的片段 packageName = "com.wagtailapp"; try { // Open the specific App Info page: Intent intent = new Intent( android.provider.Settings.ACTION_APPLI

“我的代码”在列表视图中显示具有特定权限的已安装应用。我想打开您可以卸载每个列表项(应用)上的应用的设置。我该怎么做

以下是打开应用程序设置的片段

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);
这是我的活动

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;
    }
}
公共类MainActivity扩展活动{
ArrayList结果=新建ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getInstalledApps(本);
ArrayAdapter=新的ArrayAdapter(this,R.layout.activity\u listview,results);
ListView ListView=(ListView)findViewById(R.id.mobile\u列表);
setAdapter(适配器);
}
私有ArrayList getInstalledApps(上下文){
PackageManager PackageManager=context.getPackageManager();
List applist=packageManager.getInstalledPackages(0);
迭代器it=applist.Iterator();
while(it.hasNext()){
PackageInfo pk=(PackageInfo)it.next();
if((pk.applicationInfo.flags和applicationInfo.FLAG_系统)!=0){
Log.v(“使用internet的系统应用程序=”,“”+pk.applicationInfo.loadLabel(packageManager));
继续;
}
if(PackageManager.PERMISSION_grated==PackageManager.checkPermission(Manifest.PERMISSION.INTERNET,pk.packageName)||
PackageManager.PERMISSION\u grated==PackageManager.checkPermission(Manifest.PERMISSION.READ\u外部存储,pk.packageName))
结果.添加(“+pk.applicationInfo.loadLabel(packageManager));
}
Log.v(“使用internet的应用程序=,results.toString());
返回结果;
}
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getInstalledApps(本);
ArrayAdapter=新的ArrayAdapter(this,R.layout.activity\u listview,results);
ListView ListView=(ListView)findViewById(R.id.mobile\u列表);
setAdapter(适配器);
setOnItemClickListener(this);
}
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
//你的代码在这里
}
试试这个:

listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {
                String packageName = (String)parent.getItemAtPosition(position);
            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);
            }
        });
listView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
字符串packageName=(字符串)parent.getItemAtPosition(位置);
试一试{
//打开特定应用程序信息页面:
意向意向=新意向(android.provider.Settings.ACTION\u APPLICATION\u DETAILS\u Settings);
setData(Uri.parse(“包:“+packageName”);
星触觉(意向);
}捕获(ActivityNotFounde异常){
//e.printStackTrace();
//打开通用应用程序页面:
意向意向=新意向(android.provider.Settings.ACTION\u MANAGE\u APPLICATIONS\u Settings);
星触觉(意向);
}
});

查看它是否有效。

将此代码粘贴到listView.setAdapter(适配器)下面的onCreate()中

listView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
字符串packageName=results.get(位置);
意向意向=新意向(android.provider.Settings.ACTION\u APPLICATION\u DETAILS\u Settings);
intent.setFlags(intent.FLAG\u活动\u新任务);
setData(Uri.parse(“包:“+packageName”);
星触觉(意向);
}
});

我认为您缺少
listView.setOnItemClickListener();
您需要创建自定义适配器,并在适配器的getView()方法中处理每个项(视图)单击事件。您的活动必须实现“OnItemClickListener”方法onItemClick(AdapterView,view,int,long)MainActivity类型的必须重写或实现超类型方法AdapterView类型中的方法setOnItemClickListener(AdapterView.OnItemClickListener)不适用于参数(MainActivity)我实现了你的代码,但它没有做任何事情!它会打开设置,但会立即关闭设置,并在半秒钟后返回应用程序。请尝试以下操作:int UNINSTALL_REQUEST_code=1;startActivityForResult(intent,UNINSTALL_REQUEST_code);但在哪里?我很困惑它仍然是一样的,它会打开,但会在半秒钟后返回尝试以下操作:int UNINSTALL\u REQUEST\u CODE=1;intent.puttera(intent.EXTRA\u RETURN\u RESULT,true);startractivityforresult(intent,UNINSTALL\u REQUEST\u CODE);
listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {
                String packageName = (String)parent.getItemAtPosition(position);
            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);
            }
        });
 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);
        }
    });