有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个游戏,每当一名球员将球传过球门时,他都会增加一分。我添加了一个TextView,我希望每次目标更新时都会更新它,并用文本“1”初始化它,并给它id“scoreTextView”。我试图在我的主要活动中声明一个TextView变量,并使用addView,但我的游戏每次都会崩溃。我还尝试在阅读了另一个StackOverflow问题后,将布局参数和文本视图一起传递给大家,但这也导致了我的游戏崩溃。当我没有在我的主要活动中声明TextView变量并且没有将scoreTextView添加到mainView(即我的FrameLayout变量的名称)时,游戏实际上会运行并显示1,但是如果我无法从我的活动访问scoreTextView,我就没有办法更改它。 所以我的问题是,如何在框架布局中创建一个文本视图,以便在我的主要活动中根据需要动态使用和更改它

我已经看过并尝试过了,但都不起作用: Add a Textview to a FrameLayout in a determined position


共 (3) 个答案

  1. # 1 楼答案

    <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,这是一种非常简单的访问方式。希望它能帮助你

  2. # 2 楼答案

    可能您的问题是您试图从非UI线程更新TextView?日志消息将非常有帮助

    如果是这种情况,请尝试添加以下内容:

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

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

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