java - 在for循环中初始化变量

标签 java android variables for-loop initializing

我有这样的代码:

TextView wyniszczenie_zakres_bmi = (TextView)t.findViewById(R.id.wyniszczenie_zakres_bmi);
TextView wychudzenie_zakres_bmi = (TextView)t.findViewById(R.id.wychudzenie_zakres_bmi);
TextView niedowaga_zakres_bmi = (TextView)t.findViewById(R.id.niedowaga_zakres_bmi);

我可以做这样的事情吗?

List<String> arStan = new ArrayList<String>();
arStan.add("wyniszczenie");
arStan.add("wychudzenie");
arStan.add("niedowaga");

for(String s : arStan){
    TextView s + _zakres_bmi = (TextView)t.findViewById(R.id. + s + _zakres_bmi);
}

我知道这行不通,但有什么解决方案吗?

最佳答案

试试这个:

List<String> arStan = new ArrayList<String>();
arStan.add("wyniszczenie");
arStan.add("wychudzenie");
arStan.add("niedowaga");

for(String s : arStan) {
    int myId = getResources().getIdentifier(s + "_zakres.bmi", "id", getPackageName());
    TextView myTextView = (TextView)t.findViewById(myId);
    // Do something with myTextView
}

如果您需要保存 textView 引用以备后用,而不是立即对其进行操作,则在分配 myTextView 之后将其放入数组或哈希表中。

Hashtable textViews = new Hashtable<String, TextView>();
List<String> arStan = new ArrayList<String>();
arStan.add("wyniszczenie");
arStan.add("wychudzenie");
arStan.add("niedowaga");

for(String s : arStan) {
    int myId = getResources().getIdentifier(s + "_zakres.bmi", "id", getPackageName());
    TextView myTextView = (TextView)t.findViewById(myId);
    textViews.put(s + "_zakres.bmi", myTextView);
}

// When you need to get one of the TextViews:
TextView tv = textViews.get("niedowaga_zakres.bmi");
// Do something with tv.

关于java - 在for循环中初始化变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8203890/

相关文章:

javascript - 在 JavaScript 中的新变量之前不写 "var"

swift - 快速访问另一个类的变量

javascript - 在 JavaScript 中赋值之前如何检查变量是否已定义?

java - 使用通过反射获得的枚举常量

java - 如何在jlist中添加图片

java - 未找到样式属性 '@android:attr/windowEnterAnimation'

Android Studio 本地路径不存在

java.lang.Integer.parseInt 不会取 0xFFFFFFFF

java - Appfuse - Spring 4 应用程序无法在 Tomcat 7 上部署

javascript - 如何使用 jQuery 使用不同的 CSS?