我有一个游戏,每当玩家通过一个球进球时都会增加一个点数。我添加了一个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
答案 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");
这应该在附加到布局的活动类中完成。