我读了几篇关于堆栈溢出的博客,这些博客有一个解决这个主题的问题。但是,在实施这些解决方案时,作为初学者无法解决问题,需要帮助来解决这个问题。我们可以创建一个EditText类型的数组吗?这是代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registration);
String[] referenceVariables = {"firstName", "lastName", "uid", "password", "reenterPassword", "emailId"};
String[] reference = {"enterFirstName","enterLastName","enterUid","enterPassword","enterEmailId"};
for(int i=0; i<reference.length;i++){
int resID = (getResources().getIdentifier(reference[i], "id", getPackageName()));
referenceVariables[i] = ((EditText) findViewById(resID));
}
}
最终我想要的是优化和短格式:
firstName = findViewById(R.id.enterFirstName);
lastName = findViewById(R.id.enterLastName);
uid = findViewById(R.id.enterUid);
password = findViewById(R.id.enterPassword);
reenterPassword = findViewById(R.id.reenterPassword);
emailId = findViewById(R.id.enterEmailId);
提前致谢,祝你有个美好的一天!
答案 0 :(得分:0)
referenceVariables[i]
分配给String。您已分配给EditText,因此无法编译。
是的,你可以创建一个EditText或View对象的数组
尝试制作此数组
EditText[] texts = new EditText[reference.length]:
并在其中分配元素
如果您想要命名元素,请使用HashMap<String, EditText>