2011-06-29 68 views
8

我有一个包含每个类的两个字符串的类的数组。我试图在两个不同的位置点击按钮(屏幕中间,以及右上方的另一个语句),在屏幕上显示这两个字符串(它们是句子)。在Android屏幕上动态显示字符串文本

问题是我只知道如何通过XML布局文件在屏幕上获取文本,而不是动态地。我会如何去做这件事?我已经有了用XML完成的按钮和背景。

谢谢!

回答

13

动态添加视图。使用addView函数。

public MyActivity extends Activity { 
    private TextView myText = null; 

    @Override 
    public onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.id.mylayout); 

    LinearLayout lView = (LinearLayout)findViewById(R.id.mylinearlayout); 

    myText = new TextView(); 
    myText.setText("My Text"); 

    lView.addView(myText); 
} 

如果你不希望使用在所有的XML文件:

//This is in the onCreate method 
LinearLayout lView = new LinearLayout(this); 

myText = new TextView(this); 
myText.setText("My Text"); 

lView.addView(myText); 

setContentView(lView); 
+0

谢谢,但我现在有另一个问题。我知道如何动态创建一个新的TextView,但我需要在另一个函数中引用它(每次调用此函数时都会更改文本)。但是当它在onCreate函数中时我无法访问它。我试图通过将它放在onCreate函数之外使其成为类变量,但初始化时会出错。另外,每次更改文本时,是否必须执行“lView.addView(yaddayadda)”?或者它会自动显示改变的文本?谢谢! – lespommes

+0

将TextView作为Activity的成员。看到我的代码上面的例子 – Spidy

+0

谢谢我现在变得非常接近,一个morrrrre事情,如果你可以帮助:)现在,当我做sentenceText.setText(“bluh bluh”)我在LogCat中得到一个NullPointerException。这不是因为我在声明中将它设置为null吗? – lespommes

7

这不是完全清楚你想怎么显示的文本,但你肯定可以使用吐司消息:

Toast.makeText(getApplicationContext(), "Sample Text", Toast.LENGTH_LONG).show();