2017-05-23 7 views
0

私はアンドロイドアプリのjavaコードの構文ハイライトにjava Prettifyを使用しています。 enter image description hereAndroidの構文の強調表示は、Javaのprettifyを使用して、テキストビューを表示しない(<より小さい)<または<=サインインしますか?

あなたが<を見ることができるように=が欠落している:私は Android Syntax Highlighting?

public class PrettifyHighlighter { 
    private static final Map<String, String> COLORS = buildColorsMap(); 

    private static final String FONT_PATTERN = "<font color=\"#%s\">%s</font>"; 

    private final Parser parser = new PrettifyParser(); 

    public String highlight(String fileExtension, String sourceCode) { 
     StringBuilder highlighted = new StringBuilder(); 
     List<ParseResult> results = parser.parse(fileExtension, sourceCode); 
     for(ParseResult result : results){ 
      String type = result.getStyleKeys().get(0); 
      String content = sourceCode.substring(result.getOffset(), result.getOffset() + result.getLength()); 
      highlighted.append(String.format(FONT_PATTERN, getColor(type), content)); 
     } 
     return highlighted.toString(); 
    } 

    private String getColor(String type){ 
     return COLORS.containsKey(type) ? COLORS.get(type) : COLORS.get("pln"); 
    } 

    private static Map<String, String> buildColorsMap() { 
     Map<String, String> map = new HashMap<>(); 
     map.put("typ", "000000"); // black 
     map.put("kwd", "760098"); // violet 
     map.put("lit", "001ab7"); // dark blue 
     map.put("com", "999999"); // grey, comments 
     map.put("str", "ff4500"); // dark orange 
     map.put("pun", "333333"); // 90% black 
     map.put("pln", "156f15"); // dark green 
     return map; 
    } 
} 

 PrettifyHighlighter highlighter = new PrettifyHighlighter(); 
     String code="public class Example { \n" + 
       "public static void main(String args[]) { \n" + 
       " for(int i=1; i<=5; i++){ \n" + 
       "  if(i==3){ \n" + 
       "   break; \n" + 
       "  } \n" + 
       "  System.out.println(i); \n" + 
       " } \n" + 
       "} \n" + 
       "} "; 
     String highlighted = highlighter.highlight("java", code); 
     textView.setText(Html.fromHtml(highlighted.replace("\n","<br/>"),Html.FROM_HTML_MODE_COMPACT)); 

XML

<TextView 
    android:id="@+id/textView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/ivImage3" 
    android:layout_alignStart="@+id/ivImage3" 
    android:layout_below="@+id/ivImage3" 
    android:scrollbars = "vertical" 
    android:layout_marginTop="@dimen/program_margin_top" 
    android:background="@drawable/textlines" 
    android:textSize="16dp" 
    android:text="" /> 

OUTPUTとしてのTextViewでそれを使用して、この例に従っ出力から、それはだけではなく、私< = 5

<がTextViewの中で示されていないという理由は何であるのI5を示している、どのように私は、構文で<はtexviewを強調表示することができますか? は、すべてのヘルプは

+1

'' \ 'を' '
' 'に置き換えたように、' '<' 'を' '< ''に置き換えてください。これにはhtmlが含まれるので、 '' <''は開始タグと見なされます。 – f1sh

+0

highlighted = highlighted.replace( "<="、 "< =");を使用して<=を表示できました。 を<<に置き換えようとすると、https://ibb.co/gPsfSa – Jitin

答えて

0

を高く評価され、この1

&lt; for < 

&gt; for > 

&amp; for & 

を試してみて、これはXMLファイル内のエスケープ文字を表示するように助けることを願っています。

+0

>が出力され、&がエスケープ文字なしで正常に動作しますが、<は<に置き換えてhttps://ibb.coに出力を変更します/ gPsfSa – Jitin

+0

あなたは –

+0

必ずあなたの現在のコードを共有することができ、https://pastebin.com/faeauH4Q – Jitin

関連する問題