我正在使用Android应用,我需要能够将指数/权力包含在字符串(Java)中。我已经做了一些搜索,似乎我的方案让它变得困难。我已经研究过ALT +代码和Unicode等选项。我不完全确定其中任何一个或任何其他选项是否真的可行(我知道ALT +代码只有' 1'' 2'和' 3'奇怪地下标)。
那么,什么是我最好的选择,如果有的话?
我想尽量保持简单。我有很多字符串要写(比如数学问题),下标/上标数字的需要是随机的。这可以轻松完成吗?
编辑:我想我很模糊。我的应用程序是为了学习。并将问题/答案放入数组并每次随机化。我希望能够像现在一样在Java文件中设置字符串question[0].text = "solve x^2 if x=5";
但是,我不想看到" ^ 2",而是想使用实际的上标。
另一个编辑:
global.java(持有问题/答案的类/结构)
question[0].question = "Question Text. I would like to add a superscript or two here, as if it were a math problem";
question[0].answer[0]. = "Answer 1. Add a subscript here";
question[0].answer[1]. = "Answer 2. Add another superscript here.";
question[0].answer[2]. = "Answer 3. Etc.";
question[0].answer[3]. = "Answer 4. Etc.";
活动XML
<!--QUESTION-->
<TextView
android:id="@+id/textQuestion"/>
<!--ANSWERS-->
<Button
android:id="@+id/answerOne"
android:onClick="checkAnswer"/>
<Button
android:id="@+id/answerTwo"
android:onClick="checkAnswer"/>
<Button
android:id="@+id/answerThree"
android:onClick="checkAnswer"/>
<Button
android:id="@+id/answerFour"
android:onClick="checkAnswer"/>
活动Java
//SET QUESTION STRING TO TEXTVIEW
textQuestion.setText(questionDatabase.getQuestion(index));
//SET ANSWER STRINGS TO BUTTONS' TEXT
buttonOne.setText(questionDatabase.getAnswer(index, 0));
buttonTwo.setText(questionDatabase.getAnswer(index, 1));
buttonThree.setText(questionDatabase.getAnswer(index, 2));
buttonFour.setText(questionDatabase.getAnswer(index, 3));
&#34; NEXT&#34;并且&#34; PREVIOUS&#34;按钮允许用户通过递增/递减&#34;索引&#34;来移动问题。
因此,正因为如此,活动永远不会知道(我不会想到)哪些问题/答案需要文字为上标,以及为什么我希望能够设置问题/答案子当我将问题/答案输入数组时,我自己/上标。可以这样做吗?
编辑:@jared burrows在聊天方面非常有帮助,并且帮助我几乎达到了问题的终点。我现在能够使用setText(Html.fromHtml());在我的textview(问题文本)上,它正确显示下标和上标。但是在我的按钮(答案)上,我试图采用相同的策略并且它的工作原理并不相同。 &#34; X 2 &#34;只是变成&#34; X2&#34;。为什么是这样?为什么我的按钮不像文本视图那样接受html。答案 0 :(得分:1)
<强>上标:强>
textView.setText(Html.fromHtml("X<sup>2</sup>"));
<强>下标:强>
textView.setText(Html.fromHtml("X<sub>2</sub>"));
<强>参考文献:强>
Subscript and Superscript a String in Android
答案 1 :(得分:1)
答案是@Jared Burrows和AlanV的帮助。谢谢你们俩。
view.setText(Html.fromHtml(stringGoesHere));
这确实有效,但由于(我认为)Android 5.0中的一些令人沮丧的功能,开箱即用它不适用于按钮。按钮会自动设置为全部大写,因此,它会覆盖html格式。
因此,要允许按钮正确使用html,必须将该属性设置为false。
<button
android:textAllCaps="false";/>
再次感谢Jared Burrows和AlanV。