diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 40ca0af..6a9fb71 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,10 +11,7 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.AndroidFundamentalsMai2021"> - - - - + diff --git a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/EmailAdapter.java b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/EmailAdapter.java deleted file mode 100644 index aba7a85..0000000 --- a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/EmailAdapter.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.magdamiu.androidfundamentalsmai2021; - -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import java.util.List; - -public class EmailAdapter extends RecyclerView.Adapter { - private List emails; - - public EmailAdapter(List emails) { - this.emails = emails; - } - - // creates the item view, only the ui elements (it's like a template) - @NonNull - @Override - public EmailViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.email_item, parent, false); - return new EmailViewHolder(itemView); - } - - // fills the item with the corresponding element from the list (data source) - @Override - public void onBindViewHolder(@NonNull EmailViewHolder holder, int position) { - Mail currentMail = emails.get(position); - holder.getTextViewSender().setText(currentMail.getSenderName()); - holder.getTextViewSubject().setText(currentMail.getSubject()); - } - - // decides how many items(total number) to create in our recycler view - @Override - public int getItemCount() { - return emails.size(); - } -} diff --git a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/EmailViewHolder.java b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/EmailViewHolder.java deleted file mode 100644 index 08128fe..0000000 --- a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/EmailViewHolder.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.magdamiu.androidfundamentalsmai2021; - -import android.view.View; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -// the class associated to the item of the recycler view -// each ui element from the item should have a dedicated field in this class -public class EmailViewHolder extends RecyclerView.ViewHolder { - final private TextView textViewSender; - final private TextView textViewSubject; - - public EmailViewHolder(@NonNull View itemView) { - super(itemView); - - textViewSender = itemView.findViewById(R.id.textViewSender); - textViewSubject = itemView.findViewById(R.id.textViewSubject); - } - - - public TextView getTextViewSender() { - return textViewSender; - } - - public TextView getTextViewSubject() { - return textViewSubject; - } -} diff --git a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/EmailsActivity.java b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/EmailsActivity.java deleted file mode 100644 index fed34c9..0000000 --- a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/EmailsActivity.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.magdamiu.androidfundamentalsmai2021; - -import androidx.appcompat.app.AppCompatActivity; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import android.os.Bundle; - -import java.util.ArrayList; -import java.util.List; - -public class EmailsActivity extends AppCompatActivity { - - private List emails; - - private RecyclerView recyclerViewEmails; - private RecyclerView.LayoutManager layoutManager; - private EmailAdapter emailAdapter; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_emails); - - // data source for our RecyclerView - populateListOfEmails(); - - // init the ui elements - initView(); - - // set the linear layout manager to our recycler view - setLayoutManager(); - - // set the adapter to our recycler view - setAdapter(); - } - - private void initView() { - recyclerViewEmails = findViewById(R.id.recyclerViewEmails); - } - - private void populateListOfEmails() { - emails = new ArrayList<>(); - Mail newEmail = new Mail(1, "Magda", "Curs Android"); - emails.add(newEmail); - int index; - for (int i = 1; i < 20; i++) { - index = i + 1; - newEmail = new Mail(index, "Sender " + index, "Subject " + index); - emails.add(newEmail); - } - } - - private void setLayoutManager() { - layoutManager = new LinearLayoutManager(this); - recyclerViewEmails.setLayoutManager(layoutManager); - } - - private void setAdapter() { - emailAdapter = new EmailAdapter(emails); - recyclerViewEmails.setAdapter(emailAdapter); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/Mail.java b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/Mail.java deleted file mode 100644 index 33eff91..0000000 --- a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/Mail.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.magdamiu.androidfundamentalsmai2021; - -public class Mail { - private int id; - private String senderName; - private String subject; - - public Mail(int id, String senderName, String subject) { - this.id = id; - this.senderName = senderName; - this.subject = subject; - } - - public String getSenderName() { - return senderName; - } - - public void setSenderName(String senderName) { - this.senderName = senderName; - } - - public String getSubject() { - return subject; - } - - public void setSubject(String subject) { - this.subject = subject; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } -} diff --git a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StartActivity.java b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StartActivity.java index 8228918..a421a9e 100644 --- a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StartActivity.java +++ b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StartActivity.java @@ -22,7 +22,7 @@ public void startMainActivityOnClick(View view) { public void startRecyclerViewActivityOnClick(View view) { // starts from the current activity, and moves the user to the EmailsActivity screen - Intent intentToStartEmailsActivity = new Intent(StartActivity.this, EmailsActivity.class); + Intent intentToStartEmailsActivity = new Intent(StartActivity.this, StudentActivity.class); startActivity(intentToStartEmailsActivity); } diff --git a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/Student.java b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/Student.java new file mode 100644 index 0000000..b8a1617 --- /dev/null +++ b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/Student.java @@ -0,0 +1,37 @@ +package com.magdamiu.androidfundamentalsmai2021; + +public class Student { + private int id; + private String firstName; + private String lastName; + + public Student(int id, String firstName, String lastName) { + this.id = id; + this.firstName = firstName; + this.lastName = lastName; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } +} diff --git a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StudentActivity.java b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StudentActivity.java new file mode 100644 index 0000000..253ead4 --- /dev/null +++ b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StudentActivity.java @@ -0,0 +1,66 @@ +package com.magdamiu.androidfundamentalsmai2021; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.content.Context; +import android.os.Bundle; + +import java.util.ArrayList; +import java.util.List; + +public class StudentActivity extends AppCompatActivity { + + private List students; + private static Context context; + private RecyclerView recyclerView; + private RecyclerView.LayoutManager layoutManager; + private StudentAdapter studentAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StudentActivity.context = getApplicationContext(); + setContentView(R.layout.activity_students); + + // data source for our RecyclerView + populateListOfStudents(); + + // init the UI elements + initView(); + + // set the linear layout manager to our recycler view + setLayoutManager(); + + // set the adapter to our recycler view + setAdapter(); + } + + private void initView() { + recyclerView = findViewById(R.id.recyclerViewStudents); + } + + private void populateListOfStudents() { + students = new ArrayList<>(); + int index; + for (int i = 0; i < 20; i++) { + index = i + 1; + students.add(new Student(index, "FirstName " + index, "LastName " + index)); + } + } + + private void setLayoutManager() { + layoutManager = new LinearLayoutManager(this); + recyclerView.setLayoutManager(layoutManager); + } + + private void setAdapter() { + studentAdapter = new StudentAdapter(students); + recyclerView.setAdapter(studentAdapter); + } + + public static Context getAppContext() { + return StudentActivity.context; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StudentAdapter.java b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StudentAdapter.java new file mode 100644 index 0000000..90e0ceb --- /dev/null +++ b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StudentAdapter.java @@ -0,0 +1,44 @@ +package com.magdamiu.androidfundamentalsmai2021; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.core.content.res.ResourcesCompat; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.List; + +public class StudentAdapter extends RecyclerView.Adapter { + private final List students; + + public StudentAdapter(List students) { + this.students = students; + } + + @NonNull + @Override + public StudentViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.student_item, parent, false); + return new StudentViewHolder(itemView); + } + + // fills the item with the corresponding element from the list (data source) + @Override + public void onBindViewHolder(@NonNull StudentViewHolder holder, int position) { + Student currentStudent = students.get(position); + if (position % 2 == 1){ + holder.getStudentView().setBackgroundColor(ContextCompat.getColor(StudentActivity.getAppContext(), R.color.grey)); + } + holder.getTextFirstName().setText(currentStudent.getFirstName()); + holder.getTextLastName().setText(currentStudent.getLastName()); + } + + // decides how many items(total number) to create in our recycler view + @Override + public int getItemCount() { + return students.size(); + } +} diff --git a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StudentViewHolder.java b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StudentViewHolder.java new file mode 100644 index 0000000..9535dce --- /dev/null +++ b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StudentViewHolder.java @@ -0,0 +1,36 @@ +package com.magdamiu.androidfundamentalsmai2021; + +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +// the class associated to the item of the recycler view +// each ui element from the item should have a dedicated field in this class +public class StudentViewHolder extends RecyclerView.ViewHolder { + final private LinearLayout studentView; + final private TextView textFirstName; + final private TextView textLastName; + + public StudentViewHolder(@NonNull View itemView) { + super(itemView); + studentView = itemView.findViewById(R.id.student); + textFirstName = itemView.findViewById(R.id.textFirstName); + textLastName = itemView.findViewById(R.id.textLastName); + } + + + public TextView getTextFirstName() { + return textFirstName; + } + + public TextView getTextLastName() { + return textLastName; + } + + public LinearLayout getStudentView() { + return studentView; + } +} diff --git a/app/src/main/res/layout/activity_emails.xml b/app/src/main/res/layout/activity_students.xml similarity index 84% rename from app/src/main/res/layout/activity_emails.xml rename to app/src/main/res/layout/activity_students.xml index 832ed26..29ad936 100644 --- a/app/src/main/res/layout/activity_emails.xml +++ b/app/src/main/res/layout/activity_students.xml @@ -4,10 +4,10 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".EmailsActivity"> + tools:context=".StudentActivity"> diff --git a/app/src/main/res/layout/email_item.xml b/app/src/main/res/layout/student_item.xml similarity index 70% rename from app/src/main/res/layout/email_item.xml rename to app/src/main/res/layout/student_item.xml index 779702e..00f95a8 100644 --- a/app/src/main/res/layout/email_item.xml +++ b/app/src/main/res/layout/student_item.xml @@ -1,19 +1,19 @@ + android:layout_height="wrap_content" /> \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index d8ce349..0817aa5 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -8,4 +8,5 @@ #FF000000 #FFFFFFFF #ff3412 + #CCCCCC \ 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 b363a5c..72646d9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ - Curs Android Fundamentals + Students Hello World from Android! This is my first TextView I am a button