如何使用仅在运行时才知道的名称来初始化TextView
或任何其他 Android 组件的名称?
例如:
LinearLayout linLayout = (LinearLayout) findViewById(R.id.dynamicLayout);
linLayout.setOrientation(LinearLayout.VERTICAL);
for(int i = 1; i < 5; i++){
String dynamic_name = "myTextView"+i;
//Create new textView named dynamically
TextView dynamic_name = new TextView(this);
//style textView here etc
linLayout.addView(dynamic_name);
}
答案 0 :(得分:2)
如何使用仅在运行时才知道的名称来初始化textView或任何其他Android组件的名称?
你不能。
TextView this_variable_changes
是在编译时定义的,而String this_variable_changes
是在运行时更改的。
然后如何基于只能在运行时知道的数字创建可变数量的textView?
一旦您在运行时获得了TextView
的数量,就可以通过编程方式创建那么多TextView
,并将其添加到布局中。
由于上述原因,您不需要动态名称。您可以做的是将接收到的数量映射到相应数量的TextView
,即使用Map
,其键索引到接收到的数量和TextView
s的值。>
答案 1 :(得分:0)
在Java中,但是您可以创建Maps或Arrays来处理您的特定问题。当遇到使您认为“我需要我的变量来动态更改名称”的问题时,您应该尝试考虑“关联数组”。在Java中,您可以使用Map
s获得关联数组。
也就是说,您可以保留数组列表,例如:
List<String[]> kList = new ArrayList<String[]>();
for(int k = 0; k < 5; k++){
kList.add(new String[3]);
}
或者也许更接近您想要的,您可以使用地图:
Map<Integer,String[]> kMap = new HashMap<Integer,String[]>();
for(int k = 0; k < 5; k++){
kMap.put(k, new String[3]);
}
// access using kMap.get(0) etc..
答案 2 :(得分:0)
对我来说简单的解决方案是将您的 cmd 类型 ipconfig 复制您的 IP v4 地址并粘贴到 android 模拟器主机中
http://your-ip-v4-address:3000/