Android Intent选择CSV进行导入

Android Intent选择CSV进行导入,第1张

概述我想将特定的CSV文件导入数据库.我正在使用库aFileChooser来选择文件,但不会导入CSV文件中的数据.我哪里错了?谢谢 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch(requestCode) { case ACTIV 我想将特定的CSV文件导入数据库.我正在使用库afileChooser来选择文件,但不会导入CSV文件中的数据.我哪里错了?谢谢

@OverrIDe  protected voID onActivityResult(int requestCode,int resultCode,Intent data) {    switch(requestCode) {     case ACTIVITY_CHOOSE_file1: {           if (resultCode == RESulT_OK){               Uri uri = data.getData();                file file1 = com.ipaulpro.afilechooser.utils.fileUtils.getfile(uri);                proimportCSV(file1);            }          }      }    }ricevi_csv= (button) findVIEwByID(R.ID.but_ricevi_csv);    ricevi_csv.setonClickListener(new OnClickListener() {         @OverrIDe         public voID onClick(VIEw v) {         Intent choosefile;          Intent intent;          choosefile = new Intent(Intent.ACTION_GET_CONTENT);          choosefile.setType("application/image");            intent = Intent.createChooser(choosefile,"Choose a CSV");            startActivityForResult(intent,ACTIVITY_CHOOSE_file1);          }        });    }private voID proimportCSV(file from){ file root = Environment.getExternalStorageDirectory(); file exportDir = new file(root.getabsolutePath()); file csvfile = new file(exportDir,getString(R.string.app_name)+".csv");  try {ContentValues cv = new ContentValues();// reading CSV and writing tableCSVReader dataRead = new CSVReader(new fileReader(csvfile));String[] vv = null;while((vv = dataRead.readNext())!=null) {   cv.clear();   SimpleDateFormat currFormater  = new SimpleDateFormat("dd-MM-yyyy");   SimpleDateFormat postFormater = new SimpleDateFormat("yyyy-MM-dd");      String eDDte;        try {            Date nDate = currFormater.parse(vv[0]);            eDDte = postFormater.format(nDate);            cv.put(table.DATA,eDDte);        }         catch (Exception e) {        } cv.put(table.C,vv[1]); cv.put(table.E,vv[2]); cv.put(table.U,vv[3]); cv.put(table.C,vv[4]); sqliteDatabase db = mHelper.getWritableDatabase();  db.insert(table.table_name,null,cv);

}
dataRead.close();

} catch(例外e){
   Log.e( “TAG”,e.toString());

}

解决方法 使用“text / csv”类型和category_OPENABLE类别打开intent:

private voID selectCSVfile(){    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);    intent.addcategory(Intent.category_OPENABLE);    intent.setType("text/csv");    startActivityForResult(Intent.createChooser(intent,"Open CSV"),ACTIVITY_CHOOSE_file1);}

现在在你的onActivityResult中:

case ACTIVITY_CHOOSE_file1: {       if (resultCode == RESulT_OK){            proimportCSV(new file(data.getData().getPath());        }      }  }

现在我们需要更改你的proimportCSV方法来使用我们传回的实际文件:

private voID proimportCSV(file from){  try {    // Delete everything above here since we're reading from the file we already have    ContentValues cv = new ContentValues();    // reading CSV and writing table    CSVReader dataRead = new CSVReader(new fileReader(from)); // <--- This line is key,and why it was reading the wrong file    sqliteDatabase db = mHelper.getWritableDatabase(); // LEt's just put this here since you'll probably be using it a lot more than once    String[] vv = null;    while((vv = dataRead.readNext())!=null) {       cv.clear();       SimpleDateFormat currFormater  = new SimpleDateFormat("dd-MM-yyyy");       SimpleDateFormat postFormater = new SimpleDateFormat("yyyy-MM-dd");       String eDDte;        try {            Date nDate = currFormater.parse(vv[0]);            eDDte = postFormater.format(nDate);            cv.put(table.DATA,eDDte);        }        catch (Exception e) {        }         cv.put(table.C,vv[1]);         cv.put(table.E,vv[2]);         cv.put(table.U,vv[3]);         cv.put(table.C,vv[4]);          db.insert(table.table_name,cv);    } dataRead.close();    } catch (Exception e) { Log.e("TAG",e.toString());    }}
总结

以上是内存溢出为你收集整理的Android Intent选择CSV进行导入全部内容,希望文章能够帮你解决Android Intent选择CSV进行导入所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1122232.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存