将数字添加到变量的名称

时间:2017-03-09 12:40:15

标签: java android

我有editTexts siteName1,siteName2,siteName3,siteURL1,siteURL2,siteURL3和按钮 - clear1,clear2,clear2。

按下clear1时,将清除siteName1和siteURL1。 当按下clear2时,sitename2和siteURL2被清除,你明白了。

我为按钮和函数清除创建了onClickListener。

public void onClick(View v) {
    switch (v.getId()) {
        case R.id.clear1:
            clear(1);
            break;
        case R.id.clear2:
            clear(2);
            break;
        case R.id.clear3:
            clear(2);
            break;
        default:
            break;
    }
}

和功能

void clear(int i){
            siteName1.getText().clear();
            siteURL1.getText().clear();
        }

我想为所有3个按钮创建一个功能。有没有办法制作这样的东西

siteName + i.getText()。clear(); ?因此,我不需要创建3个单独的函数来清除editTexts。感谢。

4 个答案:

答案 0 :(得分:1)

您应该考虑创建变量数组。

EditText siteName[] = new EditText[3];

然后,您可以将它们分别称为siteName [0],siteName [1]和siteName [2]。同样适用于siteURL和清除按钮。

  

有没有办法制作像这个siteName + i.getText()。clear(); ?

这将是siteName[i].getText().clear();

答案 1 :(得分:0)

将所有选址保存在HashMap<Int, View>中,当您通过clear(int i)iterate map以获取正确的网站时

答案 2 :(得分:0)

创建hashmap的哈希映射 在hashmap中添加按钮和相应的textview

然后做这样的事情:

 public void onClick(View v) {
  //pass the button view to clear function
  clear(v);    
}

void clear(View view){
   viewsHashMap.get(view).getText().clear();      
}

我希望这可以解决你的问题

答案 3 :(得分:0)

将您的siteName和siteURL放在表格中。

ArrayList<EditText> siteaNames= new ArrayList();
ArrayList<EditText> siteURLS= new ArrayList();

然后将edittexts放在每个列表上。

然后根据您传递给函数的int,清除列表第n个元素中的元素。

void clear(int i){
           ((EditText) siteNames.get(i)).setText("");   
           ((EditText) siteURLS.get(i)).setText("");
        }