私のアプリでは、登録時に複数のデータをキャプチャする必要があります。複数のEditTextが1つのレイアウトにパックされないように、私は1つのアクティビティから複数のレイアウトを使用することに決めました。 1つのレイアウトは、電子メール、別の電話番号などを取得します。あるレイアウトでEditTextにデータを入力すると、ボタンが次の場所に移動します。この(LogCat)複数のレイアウトから1つのアクティビティでデータをキャプチャする
私は、渡すことができます
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));
}
});
}
});
}
}
私が手に出力されます。私は(テストとして)行っていることはこれですこの情報は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
が頭に浮かびますこれを達成するために他にどのようなアプローチをとることができますか?私がそれをそのまま残しておくと、私が言及した明白なデータ型のほかに、将来どのような問題が発生する可能性がありますか?
あなたの目的にデータベースを使用する必要があります。 –