更改用Java[Android]创建的文本的布局

更改用Java[Android]创建的文本的布局,android,text,random,numbers,Android,Text,Random,Numbers,好的,我问过如何为android创建一个1-100的随机数,我得出了这个结论 TextView tv = new TextView(this); int random = (int)Math.ceil(Math.random()*101); tv.setText("Your Number Is..."+ random ); 这会创建默认的hello world样式的文本视图,并显示您的号码是。。。。[然后是随机数] 我的问题是,我无法更改此文本的布局,因为它不是用

好的,我问过如何为android创建一个1-100的随机数,我得出了这个结论

    TextView tv = new TextView(this);

    int random = (int)Math.ceil(Math.random()*101); 

    tv.setText("Your Number Is..."+ random );
这会创建默认的hello world样式的文本视图,并显示您的号码是。。。。[然后是随机数]

我的问题是,我无法更改此文本的布局,因为它不是用XML定义的,如果有人能告诉我如何更改样式,或者将随机数转换为字符串,这样我就可以将其用于任何Textview布局,这将是非常棒的


谢谢:

将其放入字符串很容易

String randomAsAString = Integer.toString(random)
然后,您可以使用TextView的XML属性来更改其格式,例如android:textSize=30dp或android:textColor=900

顺便说一句,如果你对上一个问题的答案感到满意,你应该回去把答案标记为接受。这给了你接受答案的人“声誉”点,并结束了问题,这样人们就不会认为你还在等待更好的答案。您可以在常见问题解答中了解更多有关声誉的信息

编辑: 您不能完全在xml中引用该字符串,同时仍然给它一个随机数。这是因为@string/some_string格式只允许不可更改的字符串。此操作的执行选项是使用参数,例如将字符串设置为

<string name="random_number">The random number is %d</string>
至于你关于为文本视图设置背景的另一个问题,这也很简单

yourTextView.setBackgroundDrawable(R.drawable.....)

您应该利用Eclipse的自动完成功能。。。这使得查找这些命令更加容易。例如,只需键入文本视图的名称,后跟一个句点,暂停半秒钟以显示选项列表,然后单击setB,然后它就会将列表过滤为三个setBackground draw/Resource/Color选项。

将其放入字符串很容易

String randomAsAString = Integer.toString(random)
然后,您可以使用TextView的XML属性来更改其格式,例如android:textSize=30dp或android:textColor=900

顺便说一句,如果你对上一个问题的答案感到满意,你应该回去把答案标记为接受。这给了你接受答案的人“声誉”点,并结束了问题,这样人们就不会认为你还在等待更好的答案。您可以在常见问题解答中了解更多有关声誉的信息

编辑: 您不能完全在xml中引用该字符串,同时仍然给它一个随机数。这是因为@string/some_string格式只允许不可更改的字符串。此操作的执行选项是使用参数,例如将字符串设置为

<string name="random_number">The random number is %d</string>
至于你关于为文本视图设置背景的另一个问题,这也很简单

yourTextView.setBackgroundDrawable(R.drawable.....)
您应该利用Eclipse的自动完成功能。。。这使得查找这些命令更加容易。例如,只需键入文本视图的名称,后跟一个句点,暂停半秒钟以显示选项列表,然后输入setB,然后将列表过滤为三个setBackground draw/Resource/Color选项

如果“更改样式”是指文本颜色、文本大小,并且希望以编程方式更改它们,请查看setTextColor和setTextSize方法。 更多信息

如果希望以编程方式设置更高级的格式,请参见此。 下面的示例演示如何将文本设置为粗体和斜体

tv.setText("Your Number Is..."+ random, TextView.BufferType.SPANNABLE );
Spannable myText = (Spannable) tv.getText();
myText.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC),0,myText.length(),0);
编辑: 对于android:textSize=100dp和android:gravity=center,请尝试以下选项:

如果“更改样式”是指文本颜色、文本大小,并且希望以编程方式更改它们,请查看setTextColor和setTextSize方法。 更多信息

如果希望以编程方式设置更高级的格式,请参见此。 下面的示例演示如何将文本设置为粗体和斜体

tv.setText("Your Number Is..."+ random, TextView.BufferType.SPANNABLE );
Spannable myText = (Spannable) tv.getText();
myText.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC),0,myText.length(),0);
编辑: 对于android:textSize=100dp和android:gravity=center,请尝试以下选项:


你也可以这样做

在strings.xml中定义字符串,如下所示:

<string name="your_number_is">Your number is <xliff:g id="number">%s</xliff:g>.</string>

这将使您以后想要更改文本或本地化应用程序时变得更加容易。

您也可以这样做

tv.setText(Html.fromHtml("Your number is: <b>" + random + "</b>"));
在strings.xml中定义字符串,如下所示:

<string name="your_number_is">Your number is <xliff:g id="number">%s</xliff:g>.</string>
当你以后想更改你的文本或本地化你的应用程序时,这将使它变得容易得多

tv.setText(Html.fromHtml("Your number is: <b>" + random + "</b>"));
用于基本HTML文本样式标记


对于基本HTML文本样式标记。

如果您遇到AD问题,请使用以下选项:

new Thread(){ 
      public void run(){ 
            TextView v = (TextView)findViewById(R.id.mytext); 
            v.setText("TEST"); 
      } 
    }.start();

如果您有ADD问题,请使用以下方法:

new Thread(){ 
      public void run(){ 
            TextView v = (TextView)findViewById(R.id.mytext); 
            v.setText("TEST"); 
      } 
    }.start();

我怎么知道它去了什么字符串?我在随机字符串下面画了一条黄色的下划线,它说它从来没有用过。随机字符串是它进入的字符串;这只是我取的一个愚蠢的名字。黄色的线告诉你它没有被使用就是这个意思。如果您没有在某个地方使用字符串,Eclipse会警告您这一点。实际上,你需要告诉Android将该字符串设置为TextView。我现在无法访问Eclipse,但它应该像您的TextView.SetTextRandomAsString一样简单,用正确的名称替换。有没有办法在xml中找到该字符串

,例如,我创建一个文本视图并执行。。安卓:text=@string/randomasasstring?我怎么知道它去了哪个字符串?我在randomasstring下面有一条黄色下划线,它说它永远不会被使用。它进入的字符串是字符串;这只是我取的一个愚蠢的名字。黄色的线告诉你它没有被使用就是这个意思。如果您没有在某个地方使用字符串,Eclipse会警告您这一点。实际上,你需要告诉Android将该字符串设置为TextView。我现在无法访问Eclipse,但它应该像您的TextView.SetTextRandomAsString一样简单,用正确的名称替换。有没有办法在xml中找到该字符串,例如我创建一个文本视图并执行。。安卓:text=@string/randomasasasstring?你能告诉我如何格式化我的文本,使其大约为100dp,重心在中心吗?非常感谢,但是,有没有一个命令可以将背景设置为R.drawable,黑色背景有点无聊,如果你能回答这个问题,我将非常感激,并将这个答案标记为正确的答案:例如,如果你想要一个绿色背景:tv.setBackgroundColorColor.green;所以你只需要用你想要的颜色来替换Color.GREEN。您还可以将颜色置于res/colors.xml下并引用它,以将背景设置为可绘制的,请参见以下示例:tv.setBackgroundDrawablegetResources.getDrawableR.drawable.icon;在Eclipse中创建默认项目时,这里的icon指的是res/drawable下的icon.png。您能告诉我如何设置文本格式,使其大约为100dp,重心在中间吗?非常感谢,但是,有没有一个命令可以将背景设置为R.drawable,黑色背景有点无聊,如果你能回答这个问题,我将非常感激,并将这个答案标记为正确的答案:例如,如果你想要一个绿色背景:tv.setBackgroundColorColor.green;所以你只需要用你想要的颜色来替换Color.GREEN。您还可以将颜色置于res/colors.xml下并引用它,以将背景设置为可绘制的,请参见以下示例:tv.setBackgroundDrawablegetResources.getDrawableR.drawable.icon;在Eclipse中创建默认项目时,这里的icon指的是res/drawable下的icon.png。我在R.id.your_number_是和R.string下得到一条红线。your_number_是确保您使用正确的id指定了TextView,并且在strings.xml中使用正确的名称your_number_是。如果这不起作用,并且您正在使用Eclipse,请尝试在项目的Android工具菜单下运行修复项目属性。我在R.id.your_number_is和R.string.your_number_is下得到一条红线。请确保您已使用正确的id your_number_指定了TextView,并在strings.xml中使用了正确的名称你的号码是。如果这没有帮助,并且您正在使用Eclipse,请尝试在项目上的Android工具菜单下运行修复项目属性。