2016-03-13 1 views
1

В настоящее время я работаю над приложением android, чтобы помочь моим одноклассникам изучать язык C. Я в значительной степени сделал с дизайном и компоновкой приложения, и даже смог привести объяснение на примере. Но я действительно не знаю, как отображать программы C внутри приложения.Показать код C в Android App/Android Studio

Я читал об отображении HTML-кода и чтении/отображении из текстового файла в необработанной папке, но я не думаю, что это оказалось бы полезным здесь. Плюс я новичок в Java/Android Studio, поэтому я прошу вас опубликовать немного подробный ответ с небольшим пояснением.

Мне не обязательно, чтобы код C был выделен или выделен цветом, этого было бы достаточно, если бы я мог как-то его отобразить.

+0

http://stackoverflow.com/questions/31837840/paginating-text-in-android/32096884#32096884 – Onik

ответ

0

Простым способом добиться этого было бы хранение кода в файле (http://developer.android.com/training/basics/data-storage/files.html) и чтение оттуда каждый раз, когда пользователь открывает активность, где код можно увидеть.

Помните:

  1. права доступа:

    <manifest ...> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    </manifest> 
    
  2. Я рекомендую сохранение файлов во внутренней памяти. Таким образом, когда пользователь удаляет приложение, файлы удаляются. Вы можете сделать что-то подобное, чтобы читать:

    File dir = getFilesDir(); 
    File file = new File(dir, "File.txt"); 
    
    try { 
        //Attaching BufferedReader to the FileInputStream by the help of InputStreamReader 
        BufferedReader bufferedReader = new BufferedReader(new FileReader(new 
          File(getFilesDir()+File.separator+"File.txt"))); 
        String inputString; 
    
        s = ""; 
        //Reading data line by line and storing it into the stringbuffer 
        while ((inputString = bufferedReader.readLine()) != null) { 
    
         s+=inputString + "\n"; 
    
        } 
    
        bufferedReader.close(); 
    
    } catch (IOException e) { 
        e.printStackTrace(); 
    } 
    

И это написать:

try { 
      FileOutputStream fos = openFileOutput("File.txt", Context.MODE_APPEND); 

      for (int l = 0;l<=10;l++) { 
       fos.write("something".getBytes()); 
       fos.write("\n".getBytes()); 
      } 

      fos.close(); 

      //display file saved message 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

Смотрите более подробную информацию в указанной ссылке. Счастливое кодирование!

+0

Ну, я как-то сумел сделать то, что было предложено (твой ответ не работал, мне пришлось искать другой способ добиться того же), но теперь я хочу превратить эту часть кода в ** функцию/метод **, чтобы я мог вызывать ее из разных действий и получать текстовое представление, отображающее содержимое определенного файла. Теперь я знаю, что id и файл будут меняться для каждого текстового представления, поэтому я думаю, что мне нужно передать их в качестве аргументов функции/метода, правильно? Так кто-то, пожалуйста, помогите мне достичь этого (если это возможно). – d02d33pak

Смежные вопросы