我有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。感谢。
答案 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("");
}