diff --git a/app/src/main/java/com/training/simpleloginform/MainActivity.java b/app/src/main/java/com/training/simpleloginform/MainActivity.java index 5203a8a..121e387 100644 --- a/app/src/main/java/com/training/simpleloginform/MainActivity.java +++ b/app/src/main/java/com/training/simpleloginform/MainActivity.java @@ -3,22 +3,36 @@ import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import android.text.Editable; +import android.text.TextWatcher; import android.view.View; +import android.widget.ArrayAdapter; +import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.EditText; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + /** * Assignment add validation to edit text fields *

* if an edit text is empty, show a toast that says "edit text cannot be empty", where edit text can be username or password */ -public class MainActivity extends AppCompatActivity implements View.OnClickListener { +public class MainActivity extends AppCompatActivity implements View.OnClickListener, TextWatcher { - private EditText usernameEditText; + private AutoCompleteTextView usernameEditText; private EditText passwordEditText; private Button submitButton; private Button resetButton; + Names names = new Names(); + + List namesList = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { @@ -29,24 +43,36 @@ protected void onCreate(Bundle savedInstanceState) { submitButton = findViewById(R.id.submit_button); resetButton = findViewById(R.id.reset_button); + namesList.addAll(names.getNames()); + + usernameEditText.addTextChangedListener(this); + usernameEditText.setAdapter(new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, namesList)); + submitButton.setOnClickListener(this); resetButton.setOnClickListener(this); + } @Override public void onClick(View view) { switch (view.getId()) { case R.id.submit_button: - Intent i = new Intent(this, SecondActivity.class); - i.putExtra("username", usernameEditText.getText().toString()); - i.putExtra("password", passwordEditText.getText().toString()); - startActivity(i); + Intent intent = new Intent(this, SecondActivity.class); + intent.putExtra("username", usernameEditText.getText().toString()); + intent.putExtra("password", passwordEditText.getText().toString()); + startActivity(intent); + + usernameDetailsTextView.setText(username); + passwordDetailsTextView.setText(password); + + if(!namesList.contains(username)){ + namesList.add(username); + } break; case R.id.reset_button: setResetButton(); - break; } } @@ -57,4 +83,21 @@ public void setResetButton() { } + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + usernameEditText.setAdapter(new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, namesList)); + + } + + @Override + public void afterTextChanged(Editable s) { + + + } } diff --git a/app/src/main/java/com/training/simpleloginform/Names.java b/app/src/main/java/com/training/simpleloginform/Names.java new file mode 100644 index 0000000..ab2b58c --- /dev/null +++ b/app/src/main/java/com/training/simpleloginform/Names.java @@ -0,0 +1,22 @@ +package com.training.simpleloginform; + +import java.util.ArrayList; +import java.util.List; + +public class Names { + + List names = new ArrayList<>(); + + public List getNames() { + + names.add("Desmond"); + names.add("Dean"); + names.add("Sidd"); + names.add("Nahi"); + names.add("Iliana"); + names.add("Sulekha"); + names.add("Damian"); + + return names; + } +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index aa72deb..324573f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -20,12 +20,13 @@ android:textColor="@android:color/holo_green_dark" android:textStyle="bold" /> - + android:hint="@string/username_edit_text_hint" + android:completionThreshold="1"/> diff --git a/app/src/main/res/layout/activity_second.xml b/app/src/main/res/layout/activity_second.xml index 40f35b4..e939848 100644 --- a/app/src/main/res/layout/activity_second.xml +++ b/app/src/main/res/layout/activity_second.xml @@ -3,7 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_margin="20dp" + android:layout_margin="@dimen/margin" android:orientation="vertical" tools:context=".SecondActivity"> @@ -17,9 +17,9 @@ android:id="@+id/username_label_textview" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_margin="20dp" - android:hint="Username : " - android:textSize="20dp" + android:layout_margin="@dimen/margin" + android:hint="@string/username" + android:textSize="@dimen/txt_size" android:textStyle="bold" /> @@ -27,8 +27,8 @@ android:id="@+id/username_details_textview" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="20dp" - android:textSize="20dp" + android:layout_margin="@dimen/margin" + android:textSize="@dimen/txt_size" android:textStyle="bold" /> @@ -41,9 +41,9 @@ android:id="@+id/password_label_textview" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_margin="20dp" - android:hint="Password : " - android:textSize="20dp" + android:layout_margin="@dimen/margin" + android:hint="@string/password" + android:textSize="@dimen/txt_size" android:textStyle="bold" /> @@ -51,8 +51,8 @@ android:id="@+id/password_details_textview" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="20dp" - android:textSize="20dp" + android:layout_margin="@dimen/margin" + android:textSize="@dimen/txt_size" android:textStyle="bold" /> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 460ffe4..f23d2bc 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,4 +1,7 @@ 20dp + 20dp + 20dp + 20sp \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f8500ac..1b6ee8c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -6,4 +6,6 @@ Password Submit reset + Username : + Password :