Android 如何创建一个新的;TextView";对象,通过连接两个字符串?
我想通过连接在“MainActivity”代码中创建一个新的“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
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));