如何在FrameLayout中设置TextView的文本?

时间:2015-02-26 06:46:06

标签: java android

我有一个游戏,每当玩家通过一个球进球时都会增加一个点数。我添加了一个TextView,我想在每次目标时更新它并用文本“1”初始化它并给它id“scoreTextView”。我试图在我的主要活动中声明一个TextView变量并使用addView,但我的游戏每次都崩溃。我也尝试在阅读另一个StackOverflow问题之后传递Layout params以及TextView,但这也导致我的游戏崩溃。当我没有声明TextView变量并且不在我的主要活动中将scoreTextView添加到mainView(这是我的FrameLayout变量的名称)时,游戏实际运行并显示1但是如果我无法从我的活动中访问scoreTextView我无法改变它。 所以我的问题是如何在FrameLayout中创建一个我实际可以使用的TextView并根据需要在我的主要活动中动态更改?

我已经看过这个并尝试了但是它们不起作用: Add a Textview to a FrameLayout in a determined position

3 个答案:

答案 0 :(得分:0)

<FrameLayout
    android:id="@+id/yourFrameLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@+id/lin2"
    android:layout_below="@+id/lin1"
    android:orientation="vertical" >        

    <TextView
        android:id="@+id/messageTextView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:gravity="center"
        android:textSize="20sp"
        android:text="Put your message over here" />
</FrameLayout>

然后您可以根据需要显示或隐藏此messageTextView,这是非常简单的访问方式。希望它会帮助你

答案 1 :(得分:0)

也许您的问题是您尝试从非UI线程更新TextView?日志消息真的有帮助......

如果是这种情况,请尝试添加:

runOnUiThread(new Runnable() {
    public void run() {
        // Update TextView here
TextView scoreTextView = (TextView)findViewById(R.id.scoreTextView);
scoreTextView.setText("Goals scored: " + goals);
    }
});

答案 2 :(得分:0)

TextView textView = (TextView) findViewById(R.id.messageTextView);
textView.setText("this is where you add what you want the text to say");

这应该在附加到布局的活动类中完成。