2017-01-02 3 views
0

Когда я нажимаю кнопку, ничего не происходит; Я дал внешние разрешения на запись в файле манифеста. Что не так? Заранее спасибо.JExcelApi не работает в Android

(код вперемешку я выпрямится позже извините)

Вот мой код:

 excelButton.setOnClickListener(
      new Button.OnClickListener(){ 
       public void onClick(View v) { 
String s = excelName.getText().toString(); 

        Label label; 


         String Fnamexls = s + ".xls"; 
         File sdCard = Environment.getExternalStorageDirectory(); 
         File directory = new File(sdCard.getAbsolutePath() + "/newfolder"); 
         directory.mkdirs(); 
         File file = new File(directory, Fnamexls); 
excelWriter f = new excelWriter(); 
         WorkbookSettings wbSettings = new WorkbookSettings(); 

         wbSettings.setLocale(new Locale("en", "EN")); 

         WritableWorkbook workbook; 
         try { 

          workbook = Workbook.createWorkbook(file, wbSettings); 
          //workbook.createSheet("Report", 0); 
          WritableSheet sheet = workbook.createSheet("First Sheet", 0); 
         for(int x = 0; x<MainActivity.kolonAdi.size();x++){ 
          for(int y = 0; y<MainActivity.rowAdet;y++){ 
           label = f.excelWriterClass(x,y,enterValues.table[x][y].toString()); 
           try { 
            sheet.addCell(label); 

           } catch (RowsExceededException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
           } catch (WriteException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
           } 
          } 
         } 







          workbook.write(); 
          try { 
           workbook.close(); 
          } catch (WriteException e) { 
           // TODO Auto-generated catch block 
           e.printStackTrace(); 
          } 
          //createExcel(excelSheet); 
         } catch (IOException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 


       }}); 

Это класс этикетки;

package angrybabysoftware.statisticalsoftware; 

import jxl.write.Label; 



public class excelWriter { 


public Label excelWriterClass (int a, int b, String c){ 

    Label label = new Label(a,b,c); 

    return label; 
} 


} 
+0

Какой у вас уровень API? Вы не проверяете разрешения во время выполнения. –

+0

Будет проверяться как завтра утром. У вас нет доступа к компьютеру до утра. Спасибо за ваш вклад. – Fractal

+0

Это было на самом деле разрешениями времени выполнения. Я думал, что разрешение на запрос - это функция Android, которая не знала, что мне нужно ее закодировать. Тем не менее он сохраняет память телефона вместо sdcard, хотя я могу решить эту загадку, я думаю. – Fractal

ответ

0

Проверено на наличие разрешений во время выполнения, и оно приступило к работе. спасибо Габе Сечану.