在我的應用程序中,我需要在用戶註冊時從用戶捕獲多個數據。爲了避免將多個EditText打包成一個佈局,我決定在一個活動中使用多個佈局。一種佈局將捕獲電子郵件,另一個電話號碼等。當我在一個佈局中將數據輸入到EditText中時,按鈕會將我帶到下一個佈局。我做了什麼(作爲測試)是這樣的:在一個活動中捕獲多個佈局的數據
SignupActivity
public class SignupActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
final List<String> myData = new ArrayList<>();
final EditText displayNameEditText = (EditText) findViewById(R.id.displayNameEditText);
Button mainNextButton = (Button) findViewById(R.id.nextButtonMain);
mainNextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myData.add(displayNameEditText.getText().toString());
setContentView(R.layout.phone_numbers_capture);
final EditText phone1EditText = (EditText) findViewById(R.id.phone1EditText);
Button phoneNextButton = (Button) findViewById(R.id.phoneNumbersUINextButton);
phoneNextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myData.add(phone1EditText.getText().toString());
Log.e("TAG IT", "Full name : " + myData.get(0));
Log.e("TAG IT", "Phone 1 : " + myData.get(1));
}
});
}
});
}
}
輸出我得到的是這個(logcat的)
然後我就可以通過這個信息來自myData
像這樣,當我到達最後的佈局:
MyObject myObject = new MyObject();
myObject.setFullName(myData.get(0)) //Method expects a String, no issues
myObject.setPhoneNumberOne(myData.get(1)) //Method expects a string, no issues
現在我覺得這不是最好的辦法。首先,如果我想從每個佈局捕獲不同的數據類型?
List<Object> myData
想到了,然後呢?我可以使用其他什麼方法來實現此目的?如果我保持原樣,除了我提到的明顯的數據類型之外,我可以在將來遇到什麼問題?
你應該使用數據庫爲你的目的 –