当前位置: 首页 > 知识库问答 >
问题:

如何在textview中设置文本并将其格式化为代码?(Android Java)

松增
2023-03-14

所以问题是这个。我正在编写应用程序,我想在TextView中显示“java代码”的一部分,所以当我在TextView中设置文本时,它看起来像一个简单的文本。

是否可以像代码一样显示所有标签颜色的“代码”等?

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(this)

setOnHightkightListener油漆为红色。

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


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

08-19 18:30:37.314 17929-17929/tj.horun.las.learnandroidstudioE/AndroidRuntime: FATAL EXCEPTION: main Process:tj.horun.las.learnandroidstudio, PID: 17929android.view.InflateException:二进制XML文件行#8:二进制XML文件行#8:错误inflating类io.github.kbiakov.codeview.CodeView引起的:android.view.InflateException:二进制XML文件行#8:错误inflating类io.github.kbiakov.codeview.CodeView引起的:java.lang.ClassNotFoundException:没有找到类"io.github.kbiakov.codeview.CodeView"在路径上:DexPathList[[zip file"/data/app/tj.horun.las.learnandroidstudio-1/base.apk", zip file"/data/app/tj.horun.las.learnandroidstudio-1/split_lib_dependencies_apk.apk", zip file"/data/app/tj.horun.las.learnandroidstudio-1/split_lib_slice_0_apk.apk", zip file"/data/app/tj.horun.las.learnandroidstudio-1/split_lib_slice_1_apk.apk", zip file"/data/app/tj.horun.las.learnandroidstudio-1/split_lib_slice_2_apk.apk", zip file"/data/app/tj.horun.las.learnandroidstudio-1/split_lib_slice_3_apk.apk", zip file"/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文件"/data/app/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"],nativeLibrary目录=[/data/app/tj.horun.las.learnandroidstudio-1/lib/arm64, /system/lib64, /vendor/lib64]]在dalvik. system。BaseDexClassLoader. findClass(BaseDexClassLoader. java: 56)在java. lang。ClassLoader. loadClass(ClassLoader. java: 380)在java. lang。ClassLoader. loadClass(ClassLoader. java: 312)在android. view。LayoutInflater. createView(LayoutInflater. java: 609)在android. view。LayoutInflater. createViewFromTag(LayoutInflter.在android. support. v4. view上的ViewPager.填充(ViewPager. java: 1239)。在android. support. v4. view上的ViewPager.填充(ViewPager. java: 1087)。在android. view上的ViewPager3 Dollars. run(ViewPager. java: 270)。在android. view上的编排器$CallbackRecord. run(编排器. java: 874)。在android. view上的编排器. doCallback(编排器. java: 686)。在android. view上的编排器. doFrame(编排器. java: 618)。在android. os上的编排器$FrameDisplayEventRecver. run(编排器. java: 860)。Handler. handleCallback(Handler. java: 751)。Handler.

共有3个答案

钱言
2023-03-14

是的,可以使用html。你可以使用Html。fromHtml()设置类似java代码和颜色的文本。

彭仲卿
2023-03-14

您可以使用CodeView库并为您想要的语言设置配置,然后只需使用setText,它将以您想要的任何颜色高亮显示,您可以在运行时更改主题。

姜嘉良
2023-03-14

可以使用此库启用代码高亮显示。

 类似资料:
  • 您可以在创建或编辑文件时设置用于控制代码格式的首选参数。 手动设置代码格式 打开支持的文件。 选择“编辑”>“代码”>“应用源格式”。 或者,从“常用工具栏”>“格式化源代码”中选择“应用源格式”。 手动设置文件中选定代码的格式 打开代码。 选择代码的任意部分。 选择“编辑”>“代码”>“将源格式应用于选定内容”。 或者,从“常用工具栏”>“格式化源代码”中选择“将源格式应用于选定内容”。 注意:

  • 在Visual Studio的Windows中,用于格式化或“美化”Visual Studio代码编辑器中的代码的Ctrl+K+F和Ctrl+D的等价物是什么?

  • 注意:在 Dreamweaver CC 和更高版本中,“CSS 样式”面板替换为 CSS Designer。有关详细信息,请参阅 CSS Designer。 当使用 Dreamweaver 界面创建或编辑 CSS 规则时,可以设置用于控制 CSS 代码格式的首选参数。例如,可以设置首选参数,将所有 CSS 属性放在单独的行中,在 CSS 规则之间放置一个空行,等等。 当您设置 CSS 代码格式设置

  • 我希望在输入TextField时实时格式化电话号码。目标是在根据国家/地区形成电话号码的不同数字之间添加“分隔符”(空格、破折号、点...)。默认情况下,法国:06 23 65 14 85但也适用于其他国家/地区,如国际格式法语:33 6 23 65 14 85或德国国际格式:xx xxx xxx xx xxx 为此,我有一个监听器,当在TextField中添加新号码时,它会永久查找。然后,程序会

  • 我有一个设置活动在Android Studio,用户将在文本框中输入一个名称。他们将点击保存并进入另一个活动,他们的名字将显示在文本视图中。我在尝试在文本视图中显示名称时遇到了麻烦,我尝试了一些不同的方法,并得到了一些不同的错误,这可能是一些简单的东西,我没有得到或忽略。这是我的错误代码 我的错误是:

  • 如何在Eclipse中自动格式化代码?