循环通过editTexts来检查值

时间:2012-11-22 04:31:47

标签: java android loops while-loop android-edittext

我有一个包含100个空白EditTexts的布局,所有这些都基于行/列ID命名(例如box0101,box0102等)。

然后我有另外一个布局,其中100个TextViews布局完全相同,每个布局都有一个字母,使用相同的约定命名(answerbox0101,answerbox0102等)。

我想写一个循环来检查box0101与answerbox0101,依此类推,直到其中一个框不匹配,或者它变为100并且所有框都匹配。

我很好编写循环的逻辑,我的问题是我需要循环参数作为EditText名称的一部分!我怎么能克服这个?

2 个答案:

答案 0 :(得分:1)

for(int i=0;i<ROW_COUNT;i++){
    for(j=0;j<COLUMN_COUNT;j++){
        int editTextId=getResId("box"+i+j,this,id.class);
        int textViewId=getResId("answerbox"+i+j,this,id.class);

        EditText et=(EditText)findViewById(editTextId);
        TextView tv=(TextView)findViewById(textViewId);

       //Then do your comparison as you like and do the rest. 
    }   
}

public static int getResId(String variableName, Context context, Class<?> c) {

    try {
        Field idField = c.getDeclaredField(variableName);
        return idField.getInt(idField);
    } catch (Exception e) {
        e.printStackTrace();
        return -1;
    } 
}

答案 1 :(得分:0)

您可以使用View属性设置字符串属性,就像创建100个editTexts一样,您可以设置编辑文本的标签,如editText0101,editText0102,...和answer editTexts answerbox0101,answerbox0102中的相同...通过此方法,您可以通过findViewByTag()方法按标记名称直接引用editText。