· 6 years ago · Mar 10, 2019, 11:02 AM
1package nl.saxion.contactapp.Activities;
2
3import android.content.Intent;
4import android.support.annotation.Nullable;
5import android.support.v7.app.AppCompatActivity;
6import android.os.Bundle;
7import android.util.Log;
8import android.view.View;
9import android.widget.AdapterView;
10import android.widget.ListView;
11import android.widget.Toast;
12
13import java.util.ArrayList;
14import java.util.Objects;
15
16import nl.saxion.contactapp.Contact;
17import nl.saxion.contactapp.Adapters.DisplayDataAdapter;
18import nl.saxion.contactapp.R;
19
20public class MainActivity extends AppCompatActivity {
21 private ArrayList<Contact> contacts;
22 public static final String NAME_KEY = "specialKey";
23 public static final String NUMBER_KEY = "secretKey";
24 public static final int CONFIRM_KEY = 23;
25 private int place;
26 private DisplayDataAdapter adapter;
27
28 @Override
29 protected void onCreate(Bundle savedInstanceState) {
30 super.onCreate(savedInstanceState);
31 setContentView(R.layout.activity_main);
32
33 contacts = new ArrayList<>();
34 createAndAddContacts();
35
36 adapter = new DisplayDataAdapter(this, contacts);
37 final ListView listView = findViewById(R.id.listView);
38 listView.setAdapter(adapter);
39
40 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
41 @Override
42 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
43 place = position;
44 Intent intent = new Intent(MainActivity.this, DetailedActivity.class);
45 intent.putExtra(NAME_KEY, contacts.get(position).getName());
46 intent.putExtra(NUMBER_KEY, contacts.get(position).getPhoneNumber());
47 startActivityForResult(intent, CONFIRM_KEY);
48 }
49 });
50 }
51
52 private void createAndAddContacts() {
53 Contact first = new Contact("Donald Duck", "09003677378");
54 Contact second = new Contact("Chicken Ginger", "0612345678");
55 Contact third = new Contact("Bugs Bunny", "0684738223");
56 Contact fourth = new Contact("Wilie E Coyote", "02034567890");
57 Contact fifth = new Contact("Bart Simpson", "0884895173");
58 Contact sixth = new Contact("Homer Simpson", "0900657995");
59 Contact seventh = new Contact("Maggie Simpson", "068472354419");
60
61 this.contacts.add(first);
62 this.contacts.add(second);
63 this.contacts.add(third);
64 this.contacts.add(fourth);
65 this.contacts.add(fifth);
66 this.contacts.add(sixth);
67 this.contacts.add(seventh);
68 }
69
70 @Override
71 protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
72 super.onActivityResult(requestCode, resultCode, data);
73 String changedName;
74 String changedPhoneNumber;
75
76 if (requestCode == CONFIRM_KEY && resultCode == RESULT_OK) {
77 try {
78 changedName = Objects.requireNonNull(data).getStringExtra(NAME_KEY);
79 changedPhoneNumber = data.getStringExtra(NUMBER_KEY);
80
81 this.contacts.get(place).setName(changedName);
82 this.contacts.get(place).setPhoneNumber(changedPhoneNumber);
83 Log.d("MainActivity", "I AM HERE");
84 }
85 catch (NullPointerException npe) {
86 Toast.makeText(this, "No changes made.", Toast.LENGTH_LONG).show();
87 }
88 }
89 }
90
91 @Override
92 protected void onResume() {
93 super.onResume();
94 adapter.notifyDataSetChanged();
95 }
96}