Android 将动态文本添加到RelativeLayout

Android 将动态文本添加到RelativeLayout,android,text,textview,add,android-relativelayout,Android,Text,Textview,Add,Android Relativelayout,我想为我的Android游戏创建一个“输入你的名字”页面(高分),但我遇到了一些问题。 我希望它看起来像这样: 你已经到达了 这是分数 积分!(=第2节) 请输入您的姓名以保存您的分数!(=第3节) ……编辑名称的文本 后退(=按钮)。。。。。。。。。。。。。。。。。。。输入(=按钮) 但我似乎无法将分数(int)添加到ContentView中 代码如下: “onCreate”中的Java: XML: 那么,如何将分数添加到布局中?您不能对textA、textB等调用addView,因为它们

我想为我的Android游戏创建一个“输入你的名字”页面(高分),但我遇到了一些问题。 我希望它看起来像这样:

你已经到达了

这是分数

积分!(=第2节)

请输入您的姓名以保存您的分数!(=第3节)

……编辑名称的文本

后退(=按钮)。。。。。。。。。。。。。。。。。。。输入(=按钮)

但我似乎无法将分数(int)添加到ContentView中

代码如下:

“onCreate”中的Java:

XML:



那么,如何将分数添加到布局中?

您不能对textA、textB等调用addView,因为它们已经存在于XML文件中,并且已经是视图的子视图。相反,您应该在XML文件中创建一个空的RelativeLayout,然后使用new TextView()创建textA等,并将其添加到布局中。

如果视图已经是该布局的子视图,则不应该将其添加到布局中。调用setcontentview时,XML布局会膨胀,所有这些视图都会创建并添加到视图层次结构中

我会将MySco文本视图添加到布局XML中,然后调用findviewbyd来获取它。我会避免动态添加视图。始终可以创建一个隐藏的视图,然后稍后再显示以获得类似效果

下面是您的onCreate方法的修改/精简代码

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enter_hs);
MySco = (TextView)findViewById(R.id.score);
Intent intentk = getIntent();
kontro = intentk.getStringExtra("from").equals("MainActivity") ;

score = 0 ;

if(kontro == false){
score = punkteRechnen(tuleb, le0leb, le1leb, le2leb) ; //calculate the score
} else {
score = 10 ;
}

scoint = "" + score ;

MySco.setText(scoint) ;
MySco.setTextColor(Color.WHITE) ; 
MySco.setTextSize(20);
在布局中添加以下内容:

<TextView
        android:id="@+id/score"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/white"
        android:textColorHint="@color/white"
        android:textSize="20sp"  />

试试这个,它可能会对你有所帮助

在相对版面中添加文本视图以在版面上添加分数

MySco.setLayoutParams(new RelativeLayout.LayoutParams(300,300);
layo.addView(MySco);

我知道,因为这个例外,我不能这么做。但是什么时候我必须设置ContentView?如果我将其保留在原来的位置,然后再添加内容,新视图将不会显示,是吗?我想,我必须将Layou设置为ContentView,否则它将不会显示,但如果我这样做,其他textview、edittext和按钮将不存在。首先在layout.xml文件中定义linearlayout,然后在该linearlayout中设置textview。要在linearlayout中添加textview,您可以使用我上面的代码。在RelativeLayout中是否有其他linearlayout?不幸的是,我仍然必须将layo设置为ContentView,并且必须在“Enter.setOnClickListener(this);”之前执行此操作,否则它将无法工作(已经尝试将“setContentView(layo);”复制到最后,但它只会输出一些错误)。我的问题是,在调用punkteRechnen()之前,我不知道确切的分数,因此,我无法将其添加到布局xml中,并事先将值放入Strings.xml中。我很想使用布局xml,但我不知道是否有可能在应用程序运行时向Strings.xml添加值。这很好。调用punkteRechnen后,在文本视图上调用setText,就像您所做的那样。上面代码中的问题是尚未将分数文本视图添加到布局中。让layout.xml和setContentView完成所有这些困难的工作。创建文本视图后,只需更新文本。您需要删除分配内容“=new xxx”的两个调用,并用findviewbyd替换它们。然后简单地更新findViewById返回的视图中的文本。谢谢,谢谢,非常感谢,这正是我想要做的(但不幸的是,我不知道如何做),它工作得非常完美!
<TextView
        android:id="@+id/score"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/white"
        android:textColorHint="@color/white"
        android:textSize="20sp"  />
MySco.setLayoutParams(new RelativeLayout.LayoutParams(300,300);
layo.addView(MySco);