
@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进行导入所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)