Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaAndroid中分配动态名称?_Java_Android - Fatal编程技术网

如何在JavaAndroid中分配动态名称?

如何在JavaAndroid中分配动态名称?,java,android,Java,Android,如何初始化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;

如何初始化
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);
        }
LinearLayout linLayout=(LinearLayout)findViewById(R.id.dynamicLayout);
linLayout.setOrientation(LinearLayout.VERTICAL);
对于(int i=1;i<5;i++){
字符串dynamic_name=“myTextView”+i;
//创建动态命名的新textView
TextView dynamic_name=新的TextView(此);
//样式文本视图等
linLayout.addView(动态名称);
}
如何使用运行时才知道的名称初始化textView或任何其他Android组件的名称

你不能

text查看此变量的更改
在编译时定义,而
String此变量的更改
在运行时更改

那么,如何基于一个只能在运行时才能知道的数字来创建数量可变的文本视图呢

一旦您在运行时获得了
TextView
s的数量,就可以通过编程方式创建大量
TextView
s并将其添加到布局中


由于上述原因,您不需要动态名称。您可以做的是将收到的金额映射到相应数量的
TextView
s,即使用
map
键索引到Java中收到的金额和
TextView
s的值。

,但您可以创建映射或数组来处理特定问题。当您遇到一个问题,使您认为“我需要我的变量动态更改名称”时,您应该尝试并考虑“关联数组”。在Java中,可以使用
Map
s获得关联数组

也就是说,您可以保留阵列列表,类似于:

List<String[]> kList = new ArrayList<String[]>();
for(int k = 0; k < 5; k++){
   kList.add(new String[3]);
}
List kList=new ArrayList();
对于(int k=0;k<5;k++){
添加(新字符串[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..
Map kMap=newhashmap();
对于(int k=0;k<5;k++){
kMap.put(k,新字符串[3]);
}
//使用kMap.get(0)等进行访问。。

我的简单解决方案是将您的cmd类型ipconfig复制您的IP v4地址并粘贴到android仿真器主机中

http://your-ip-v4-address:3000/

好的,那么如何根据一个只有在运行时才能知道的数字来创建可变数量的文本视图呢?@Jupiter,一旦您获得了这个数量,就可以通过编程方式创建这么多的
TextView
s并将其添加到布局中。是的,这正是我正在尝试实现的解决方案,但仍停留在如何初始化各个文本视图的名称上。请参阅问题更新。Thanks@Jupiter,由于上述原因,您不需要动态名称。您可以做的是将收到的金额映射到相应数量的
TextView
s,即使用
map
键索引到收到的金额和
TextView
s的值。对于我的特定用例,您会为每个键设置什么值来表示我需要创建的TextView?