Android 如何创建一个新的;TextView";对象,通过连接两个字符串?

Android 如何创建一个新的;TextView";对象,通过连接两个字符串?,android,Android,我想通过连接在“MainActivity”代码中创建一个新的“TextView”对象 两个字符串名。例如: String s1 = "num"; String s2 = "ber"; String s3 = s1+s2; TextView s3 = new TextView(this); 如何将s3转换为TextView对象,这样我就不会得到任何错误,上面的代码? 我的意思是我想使用s3作为“TextView”名称对象 你会这样做的 TextView textView = new TextVi

我想通过连接在“MainActivity”代码中创建一个新的“TextView”对象 两个字符串名。例如:

String s1 = "num";
String s2 = "ber";
String s3 = s1+s2;
TextView s3 = new TextView(this);
如何将s3转换为TextView对象,这样我就不会得到任何错误,上面的代码?
我的意思是我想使用s3作为“TextView”名称对象

你会这样做的

TextView textView = new TextView(this);
textView.setText(s3);

或以编程方式在循环中执行

for (int i = 0; i < list.size(); i++) {
    TextView textView = new TextView(this);
    textView.setId(s3); //set textview id, this WILL NOT make it a variable of 'number'
    linearLayout.addView(textView);

}
for(int i=0;i
第一个问题是您声明了两个同名变量。通过给TextView一个更好的名称来修复它,然后正如@soldforapp已经回答的那样,使用方法
.setText()设置文本

编辑:

等等,那么您想将TextView的值赋给字符串变量s3? 我真的不明白你的问题。如果是这样,如果您的代码看起来像这样(因此它运行)

此行将为变量s3指定TextView中的文本

s3 = tv.getText().toString();

在JAVA中,在一个作用域中为不同的变量使用相同的名称是不可能的。(即使使用不同的类型)

使用
StringBuilder
比使用
+
操作连接更好,因此:

String s1 = "num";
String s2 = "ber";
String concat = new StringBuilder().append(s1).append(s2).toString();

TextView s3 = new TextView(this);
s3.setText(concat);
编辑: 您想要的并不像PHP这样的脚本语言中存在的那样简单,但是您可以通过反射努力来实现。但是使用
Map
有一个更简单的选项:

Map<String,TextView> map = new HashMap<>();
map.put(concat, new TextView(this));
Map Map=newhashmap();
map.put(concat,newtextview(this));
您可以通过以下方式获取
文本视图


map.get(concat.setText(“您的字符串”)

我不确定我是否理解您在这里试图做什么。在同一范围内不能有共享名称的变量。无法将字符串强制转换为文本视图。您必须在文本视图上使用
setText()
方法。不,我不想显示s3文本。我想使用s3作为TextView名称。如果您使用s1、s2、s3作为变量名称,那么您需要比使用相同的变量名称更担心。变量名不能是相同的名称,只能是方法名,只要它们返回不同的内容,如字符串或int。看在上帝的份上,请为变量使用更好的名称。我知道对不同类型使用两个相同的名称是不正确的。但问题是s3可以替代什么,所以TextView s3=新的TextView(这个);更改为文本视图编号=新文本视图(此);首先,使用相同的名称是不好的,即使声明了相同的类型,也会抛出错误。按照您所说的进行更改后,您只需使用s3更新TextView的值即可。@M.JJalali您想怎么做?您的用例是什么?见编辑后的答案。这可能会对您有所帮助。很明显,我希望s1+s2是TextView对象的名称,而不是您用于声明TextView的concat名称。如何创建此TextView:(TextView编号=新建TextView(this);),编号为s1+s2请考虑我的最终答案。您不能将字符串值用作对象的变量@你知道如何在for循环中创建多个文本视图吗?如果可以,你可以回答我的问题。
String s1 = "num";
String s2 = "ber";
String concat = new StringBuilder().append(s1).append(s2).toString();

TextView s3 = new TextView(this);
s3.setText(concat);
Map<String,TextView> map = new HashMap<>();
map.put(concat, new TextView(this));