Java 安装所选apk:为什么不安装';不行?

Java 安装所选apk:为什么不安装';不行?,java,android,xml,Java,Android,Xml,我创建此代码是为了显示手机文件夹中的文件。现在,我的意图是,单击文件夹中的其中一个文件(apk文件)即可安装所选的apk。这是密码 private List<String> fileList = new ArrayList<String>(); ApplicationInfo ai; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(s

我创建此代码是为了显示手机文件夹中的文件。现在,我的意图是,单击文件夹中的其中一个文件(apk文件)即可安装所选的apk。这是密码

 private List<String> fileList = new ArrayList<String>();
 ApplicationInfo ai;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        File root = new File(Environment.getExternalStorageDirectory().toString()+File.separator+"MyFolder");
        ListDir(root);

    }

    @SuppressWarnings("deprecation")
    protected void onListItemClick(ListView l, View v, int position, long id){ 
        super.onListItemClick(l, v, position, id);
        String appPos = fileList.get(position);

        Uri packageUri = Uri.parse("package:"+getApplicationContext().getPackageName());
        Intent installIntent = new Intent(Intent.ACTION_VIEW, packageUri);

        try {

        startActivity(installIntent);
        }
        catch (ActivityNotFoundException ex) {
            final AlertDialog alertDialog1 = new AlertDialog.Builder(RestoreApp.this).create();
            alertDialog1.setTitle("Error");
            alertDialog1.setMessage("Unable open the selected activity");
            alertDialog1.setButton("OK", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {
                    alertDialog1.dismiss();
               }
            });
             alertDialog1.show();
        }
        }


    void ListDir(File f){
     File[] files = f.listFiles();
     fileList.clear();
     for (File file : files){
     fileList.add(file.getName());

     }

     ArrayAdapter<String> directoryList
     = new ArrayAdapter<String>(this,
       android.R.layout.simple_list_item_1, fileList);
     setListAdapter(directoryList);
    }

}
private List fileList=new ArrayList();
应用信息人工智能;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
文件根=新文件(Environment.getExternalStorageDirectory().toString()+File.separator+“MyFolder”);
ListDir(根);
}
@抑制警告(“弃用”)
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
super.onListItemClick(左、右、位置、id);
字符串appPos=fileList.get(位置);
Uri packageUri=Uri.parse(“包:+getApplicationContext().getPackageName());
Intent installIntent=新的Intent(Intent.ACTION\u视图,packageUri);
试一试{
startActivity(installIntent);
}
捕获(ActivityNotFoundException ex){
final AlertDialog alertDialog1=新建AlertDialog.Builder(RestoreApp.this.create();
alertDialog1.setTitle(“错误”);
alertDialog1.setMessage(“无法打开所选活动”);
alertDialog1.setButton(“确定”,新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
alertDialog1.discouse();
}
});
alertDialog1.show();
}
}
void ListDir(文件f){
File[]files=f.listFiles();
fileList.clear();
用于(文件:文件){
fileList.add(file.getName());
}
ArrayAdapter目录列表
=新阵列适配器(此,
android.R.layout.simple_list_item_1,fileList);
setListAdapter(目录列表);
}
}

当我点击一个项目时,显示对话框,这意味着进入ActivityNotFoundException。为什么?如何修复?

在super.onCreate()之后的onCreate方法中使用setContentView(),这应该可以解决问题。

我没有此ListActivity的布局