2017-08-18 8 views
0

問題はこれです。私はアプリケーションを書いているので、TextViewに "java code"の一部を表示したいので、TextViewでTextを設定すると、単純なテキストのように見えます。どのようにテキストをテキストビューに設定し、それをコードとしてフォーマットしましたか? (Android Java)

「コード」のようなコードをすべてのタグの色などで表示することはできますか?

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import br.tiagohm.codeview.Language; 
import br.tiagohm.codeview.Theme; 
import io.github.kbiakov.codeview.CodeView; 


/** 
* A simple {@link Fragment} subclass. 
*/ 
public class FragmentActivityTop extends Fragment implements br.tiagohm.codeview.CodeView.OnHighlightListener { 
    CodeView mCodeView; 
int tag=0; 
    public FragmentActivityTop() { 
     // Required empty public constructor 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     //CodeProcessor.init(getContext()); 
     View v =inflater.inflate(R.layout.activity_fragment_top, container, false); 

     //CodeView codeView = (CodeView) v.findViewById(R.id.code_viewjava); 

     String code = " @Override\n" + 
       " public View onCreateView(LayoutInflater inflater, ViewGroup container,\n" + 
       "        Bundle savedInstanceState) {\n" + 
       "  // Inflate the layout for this fragment\n" + 
       "  View v = inflater.inflate(R.layout.fragment_xml, container, false);\n" + 
       "\n" + 
       "  WebView webView = (WebView)v.findViewById(R.id.webfragxml);"; 


     mCodeView = (CodeView)v.findViewById(R.id.codeView); 

     mCodeView.setOnHighlightListener(this) 
       .setOnHighlightListener(this) 
       .setTheme(Theme.AGATE) 
       .setCode(code) 
       .setLanguage(Language.JAVA) 
       .setWrapLine(true) 
       .setFontSize(14) 
       .setZoomEnabled(true) 
       .setShowLineNumber(true) 
       .setStartLineNumber(9000) 
       .apply(); 

     return v; 
    } 


    @Override 
    public void onStartCodeHighlight() { 

    } 

    @Override 
    public void onFinishCodeHighlight() { 

    } 

    @Override 
    public void onLanguageDetected(Language language, int i) { 

    } 

    @Override 
    public void onFontSizeChanged(int i) { 

    } 

    @Override 
    public void onLineClicked(int i, String s) { 

    } 
} 

私はこれやろうとしたときにこれは私のフラグメントのコードです: mCodeView.setOnHighlightListener(この)

setOnHightkightListener塗料は赤です。

08-19 18:30:37.308 17929-17929/tj.horun.las.learnandroidstudio D/AndroidRuntime: Shutting down VM 


                      --------- beginning of crash 

8月19日18:30:37.314 17929から17929/E/AndroidRuntime tj.horun.las.learnandroidstudio:致命的な例外:メイン プロセス:tj.horun.las.learnandroidstudio、PID:17929 アンドロイド.view.InflateException:バイナリXMLファイル行#8:バイナリXMLファイル行#8:クラスを拡張するエラーio.github.kbiakov.codeview.CodeView 原因:android.view.InflateException:バイナリXMLファイル行#8:エラーが発生しましたクラスio.github.kbiakov.codeview.CodeView 原因:java.lang.ClassNotFoundException:DexPathList [[zipファイル "/ data/app /]のパスに" io.github.kbiakov.codeview.CodeView "クラスが見つかりませんでした。 tj.horun.las。 learnandroidstudio-1/base.apk "、zipファイル" /data/app/tj.horun.las.learnandroidstudio-1/split_lib_dependencies_apk.apk "、zipファイル" /data/app/tj.horun.las.learnandroidstudio-1/ "split_lib_slice_0_apk.apk」、zipファイル "/data/app/tj.horun.las.learnandroidstudio-1/split_lib_slice_1_apk.apk"、zipファイル" /data/app/tj.horun.las.learnandroidstudio-1/split_lib_slice_2_apk.apk 、zipファイル "/data/app/tj.horun.las.learnandroidstudio-1/split_lib_slice_3_apk.apk"、zipファイル "/data/app/tj.horun.las.learnandroidstudio-1/split_lib_slice_4_apk.apk"、zipファイル " /data/app/tj.horun.las.learnandroidstudio-1/split_lib_slice_5_apk.apk "zipファイル "/data/app/tj.horun.las.learnandroidstudio-1/split_lib_slice_6_apk.apk"、zipファイル" /データ/アプリ/tj.horun.las.learnandroidstudio-1/split_lib_slice_7_apk.apk "zipファイル "/data/app/tj.horun.las.learnandroidstudio-1/split_lib_slice_8_apk.apk"、zipファイル" /data/app/tj.horun .las.learnandroidstudio-1/split_lib_slice_9_apk.apk "]、nativeLibraryDirectories = [/ data/app/tj.horun.las.learnandroid dalvik.system.BaseDexClassLoader.findClassでスタジオ-1/LIB/arm64、/システム/ lib64に、/ベンダー/ lib64に] (BaseDexClassLoader.java:56) java.lang.ClassLoader.loadClass(ClassLoader.java:380でandroid.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)でjava.lang.ClassLoader.loadClass android.view.LayoutInflater.createViewで(ClassLoader.java:312) (LayoutInflater.java:609) で) android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) android.view.LayoutInflater.rInflate(LayoutInflater.java:858) at android.view.LayoutInflater.rInflateChildren(LayoutInf later.java:821) android.view.LayoutInflater.inflate(LayoutInflater.java:518) android.view.LayoutInflater.inflate(LayoutInflater.java:426) at tj.horun.las.learnandroidstudio.LayoutFragment。 onCreateView(LayoutFragment.java:28) android.support.v4.app.Fragment.performCreateView(Fragment.java:2239) android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1332) at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1574) android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager。java:1641) android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:794) android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2415) android.supportにあります。 v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2200) android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2153) (android.support.v4.app.FragmentManagerImpl.execSingleAction java:2034) android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:651) android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.ja va:143) android.support.v4.view.ViewPager.populate(ViewPager.java:1239) (android.support.v4.view.ViewPager.populate(ViewPager.java:1087) android.support)にあります。 v4.view.ViewPager $ 3.run(ViewPager.java:270) android.view.Choreographer $ CallbackRecord.run(Choreographer.java:874) android.view.Choreographer.doCallbacks(Choreographer.java:686) android.view.Choreographer.doFrame(Choreographer.java:618) android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:860) android.os.Handler.handleCallback(Handler.java:751) android.os.Handler.dispatchMessage(Handler.java:95) とandroid.os.Looper.loop(Looper.java:241) とandroid.app.ActivityThread.main(ActivityThread.java:6274) 08- 19 18:30:37.315 17929-17929/tj.horun.las.learnandroidstudio E/AndroidRuntime:java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

+0

こんにちはHorun、ようこそ、ようこそあなたはこれまでに何を試しましたか教えてください? あなたが投稿したコードは、質問にも関係しません.... –

+0

こんにちは、私はテキストビューでテキストを設定すると、画面上で見たいコードを書いただけです。今、私はHTML.fromHtmlを使用しようとします。 –

+0

私はKirill Biakovのライブラリを使用しましたが、うまくいきましたが残念ながらコードビューからテキストをコピーできません。何か案が? –

答えて

0

this libraryを使用して、コードハイライトを有効にすることができます。

+0

このライブラリを使用すると、フラグメントで使用する場合に問題が発生します。 –

+0

@ HorunDjavarievどのような問題がありますか? – Valentun

+0

mCodeView.setOnHighlightListener(この) .setOnHighlightListener(この) .setTheme(Theme.AGATE) .setCode(JAVA_CODE) .setLanguage(Language.JAVA) –

0

はい、htmlを使用することができます。 Html.fromHtml()を使用すると、Javaコードや色などのテキストを設定できます。

関連する問題