From 855491fc6936de8ea7530f67f0dc13d7bf015743 Mon Sep 17 00:00:00 2001 From: Shembull Date: Mon, 20 Jan 2020 13:01:41 +0100 Subject: [PATCH] added background; categorized messages --- .../example/recyclerview/MainActivity.java | 19 +++++++++++-------- .../com/example/recyclerview/Message.java | 4 +++- .../com/example/recyclerview/MessageType.java | 6 ++++++ .../com/example/recyclerview/MyAdapter.java | 10 ++++++---- app/src/main/res/drawable/rectangle_blue.xml | 5 +++++ app/src/main/res/drawable/rectangle_green.xml | 5 +++++ app/src/main/res/layout/activity_main.xml | 5 +++-- .../main/res/layout/message_layout_left.xml | 2 ++ .../main/res/layout/message_layout_right.xml | 2 ++ 9 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/com/example/recyclerview/MessageType.java create mode 100644 app/src/main/res/drawable/rectangle_blue.xml create mode 100644 app/src/main/res/drawable/rectangle_green.xml diff --git a/app/src/main/java/com/example/recyclerview/MainActivity.java b/app/src/main/java/com/example/recyclerview/MainActivity.java index ab4c097..c8e9d7e 100644 --- a/app/src/main/java/com/example/recyclerview/MainActivity.java +++ b/app/src/main/java/com/example/recyclerview/MainActivity.java @@ -8,6 +8,7 @@ import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widget.AdapterView; +import android.widget.Toast; import java.util.ArrayList; import java.util.Date; @@ -22,20 +23,22 @@ public class MainActivity extends AppCompatActivity implements Runnable, Adapter super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mData = new ArrayList<>(); - mData.add(new Message("Niklas", "Eine super duper Nachricht", new Date())); - mData.add(new Message("Joel", "Eine super Nachricht", new Date())); - mData.add(new Message("Max", "Eine Nachricht", new Date())); + mData.add(new Message("Niklas", "Eine super duper Nachricht", new Date(), MessageType.OWN_MESSAGE)); + mData.add(new Message("Joel", "Eine super Nachricht", new Date(), MessageType.RECIEVED_MESSAGE)); + mData.add(new Message("Max", "Eine Nachricht", new Date(), MessageType.RECIEVED_MESSAGE)); myAdapter = new MyAdapter(mData); RecyclerView mRecyclerView = findViewById(R.id.recyclerView); mRecyclerView.addOnItemTouchListener( new RecyclerItemClickListener(getApplicationContext(), mRecyclerView ,new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { - System.out.println("clicked " + mData.get(position).sender); + Toast.makeText(getApplicationContext(), "clicked " + mData.get(position).sender, Toast.LENGTH_SHORT).show(); } @Override public void onLongItemClick(View view, int position) { - // do whatever + Toast.makeText(getApplicationContext(), "deleted " + mData.get(position).sender, Toast.LENGTH_SHORT).show(); + mData.remove(position); + myAdapter.notifyDataSetChanged(); } }) ); @@ -51,13 +54,13 @@ public class MainActivity extends AppCompatActivity implements Runnable, Adapter int randNr = (int) Math.floor(Math.random() * 3); switch (randNr){ case 0: - mData.add(new Message("Niklas", "Eine super duper Nachricht", new Date())); + mData.add(new Message("Niklas", "Eine super duper Nachricht", new Date(), MessageType.OWN_MESSAGE)); break; case 1: - mData.add(new Message("Joel", "Eine super Nachricht", new Date())); + mData.add(new Message("Joel", "Eine super Nachricht", new Date(), MessageType.RECIEVED_MESSAGE)); break; case 2: - mData.add(new Message("Max", "Eine Nachricht", new Date())); + mData.add(new Message("Max", "Eine Nachricht", new Date(), MessageType.RECIEVED_MESSAGE)); } myAdapter.notifyDataSetChanged(); mHandler.postDelayed(this, 1000); diff --git a/app/src/main/java/com/example/recyclerview/Message.java b/app/src/main/java/com/example/recyclerview/Message.java index b2abcc0..9977346 100644 --- a/app/src/main/java/com/example/recyclerview/Message.java +++ b/app/src/main/java/com/example/recyclerview/Message.java @@ -6,10 +6,12 @@ class Message { String sender; String text; Date date; + MessageType mMType; - Message(String aSender, String aText, Date aDate) { + Message(String aSender, String aText, Date aDate, MessageType aMType) { sender = aSender; text = aText; date = aDate; + mMType = aMType; } } diff --git a/app/src/main/java/com/example/recyclerview/MessageType.java b/app/src/main/java/com/example/recyclerview/MessageType.java new file mode 100644 index 0000000..fd4e5a0 --- /dev/null +++ b/app/src/main/java/com/example/recyclerview/MessageType.java @@ -0,0 +1,6 @@ +package com.example.recyclerview; + +public enum MessageType { + OWN_MESSAGE, + RECIEVED_MESSAGE; +} diff --git a/app/src/main/java/com/example/recyclerview/MyAdapter.java b/app/src/main/java/com/example/recyclerview/MyAdapter.java index 3b3ef26..8aaafe7 100644 --- a/app/src/main/java/com/example/recyclerview/MyAdapter.java +++ b/app/src/main/java/com/example/recyclerview/MyAdapter.java @@ -1,6 +1,5 @@ package com.example.recyclerview; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -13,15 +12,18 @@ import java.util.ArrayList; public class MyAdapter extends RecyclerView.Adapter { - ArrayList mData; + private ArrayList mData; - public MyAdapter(ArrayList aData) { + MyAdapter(ArrayList aData) { mData = aData; } @Override public int getItemViewType(int position) { - return position % 2; + if (mData.get(position).mMType == MessageType.OWN_MESSAGE) { + return 1; + } + return 0; } @NonNull diff --git a/app/src/main/res/drawable/rectangle_blue.xml b/app/src/main/res/drawable/rectangle_blue.xml new file mode 100644 index 0000000..0bf3a05 --- /dev/null +++ b/app/src/main/res/drawable/rectangle_blue.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/rectangle_green.xml b/app/src/main/res/drawable/rectangle_green.xml new file mode 100644 index 0000000..8ee5243 --- /dev/null +++ b/app/src/main/res/drawable/rectangle_green.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index c163cd9..b092c4f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -8,8 +8,9 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/message_layout_left.xml b/app/src/main/res/layout/message_layout_left.xml index b6f9b6a..ae96f08 100644 --- a/app/src/main/res/layout/message_layout_left.xml +++ b/app/src/main/res/layout/message_layout_left.xml @@ -4,7 +4,9 @@ android:layout_width="match_parent" android:layout_height="100dp" android:layout_marginLeft="10dp" + android:layout_marginTop="10dp" android:layout_marginRight="150dp" + android:background="@drawable/rectangle_green" android:orientation="vertical">