From cdf9b5b155f34f95f493abb079d876e9e10fb099 Mon Sep 17 00:00:00 2001 From: structix Date: Sun, 26 Apr 2020 20:38:34 +0200 Subject: [PATCH 1/2] Add recyclerview --- app/build.gradle | 1 + .../java/com/janasroboter/MainActivity.java | 29 ++++++++++ .../com/janasroboter/ModeListAdapter.java | 53 +++++++++++++++++++ app/src/main/res/layout/activity_main.xml | 11 ++++ app/src/main/res/layout/recycler_item.xml | 18 +++++++ build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 7 files changed, 115 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/janasroboter/ModeListAdapter.java create mode 100644 app/src/main/res/layout/recycler_item.xml diff --git a/app/build.gradle b/app/build.gradle index 6d54f62..37d17e4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -27,4 +27,5 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' implementation 'com.squareup.okhttp3:okhttp:4.2.2' + implementation 'androidx.recyclerview:recyclerview:1.1.0' } diff --git a/app/src/main/java/com/janasroboter/MainActivity.java b/app/src/main/java/com/janasroboter/MainActivity.java index 9bf784a..b349983 100644 --- a/app/src/main/java/com/janasroboter/MainActivity.java +++ b/app/src/main/java/com/janasroboter/MainActivity.java @@ -1,6 +1,10 @@ package com.janasroboter; import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import android.os.Bundle; import android.os.StrictMode; import android.view.View; @@ -10,10 +14,16 @@ import android.widget.Toast; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.List; public class MainActivity extends AppCompatActivity { private final String URL = "http://192.168.4.1"; + private RecyclerView recyclerView; + private RecyclerView.Adapter modeAdapter; + private LinearLayoutManager layoutManager; + private List data; @Override protected void onCreate(Bundle savedInstanceState) { @@ -29,6 +39,25 @@ public class MainActivity extends AppCompatActivity { .detectNetwork() .penaltyLog() .build()); + + recyclerView = findViewById(R.id.recyclerv); + + recyclerView.setHasFixedSize(true); + layoutManager = new LinearLayoutManager(getBaseContext()); + recyclerView.setLayoutManager(layoutManager); + + data = new ArrayList<>(); + setRecyclerData(data); + + modeAdapter = new ModeListAdapter(data); + recyclerView.setAdapter(modeAdapter); + + recyclerView.addItemDecoration(new DividerItemDecoration(getBaseContext(), DividerItemDecoration.VERTICAL)); + } + + private void setRecyclerData(List data) { + data.add("Mode 1"); + data.add("Mode 2"); } diff --git a/app/src/main/java/com/janasroboter/ModeListAdapter.java b/app/src/main/java/com/janasroboter/ModeListAdapter.java new file mode 100644 index 0000000..45d2bf2 --- /dev/null +++ b/app/src/main/java/com/janasroboter/ModeListAdapter.java @@ -0,0 +1,53 @@ +package com.janasroboter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.List; + +public class ModeListAdapter extends RecyclerView.Adapter { + + private List data; + + static class LineHolder extends RecyclerView.ViewHolder { + public TextView mode; + + + public LineHolder(View itemView) { + super(itemView); + + mode = itemView.findViewById(R.id.tv_mode); + } + } + + public ModeListAdapter(List data) { + this.data = data; + } + + public ModeListAdapter.LineHolder onCreateViewHolder(ViewGroup parent, int viewType) { + // Create a new view + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.recycler_item, parent, false); + + return new LineHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull LineHolder holder, final int position) { + // Set the username + String text = data.get(position); + System.out.println("Username: " + text); + holder.mode.setText(text); + } + + @Override + public int getItemCount() { + return data.size(); + } + +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 866042b..ab7d66b 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -85,4 +85,15 @@ android:text="Singen" app:layout_constraintStart_toEndOf="@+id/textView" app:layout_constraintTop_toBottomOf="@+id/state" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/recycler_item.xml b/app/src/main/res/layout/recycler_item.xml new file mode 100644 index 0000000..029b1de --- /dev/null +++ b/app/src/main/res/layout/recycler_item.xml @@ -0,0 +1,18 @@ + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 48947c3..d29fea0 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.1' + classpath 'com.android.tools.build:gradle:3.6.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ff7dc64..e55b026 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Apr 15 23:02:08 CEST 2020 +#Sun Apr 26 20:33:59 CEST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip From 48c4cfc1212556f44898ecf88994fdfc25c7c95b Mon Sep 17 00:00:00 2001 From: structix Date: Mon, 27 Apr 2020 20:19:00 +0200 Subject: [PATCH 2/2] Add recyclerview click listener --- .../java/com/janasroboter/MainActivity.java | 8 ++++-- .../com/janasroboter/ModeListAdapter.java | 26 ++++++++++++++++++- app/src/main/java/com/janasroboter/REST.java | 3 +++ app/src/main/res/layout/activity_main.xml | 4 +-- 4 files changed, 36 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/janasroboter/MainActivity.java b/app/src/main/java/com/janasroboter/MainActivity.java index b349983..d62f5bb 100644 --- a/app/src/main/java/com/janasroboter/MainActivity.java +++ b/app/src/main/java/com/janasroboter/MainActivity.java @@ -17,9 +17,10 @@ import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; +import static com.janasroboter.REST.URL; + public class MainActivity extends AppCompatActivity { - private final String URL = "http://192.168.4.1"; private RecyclerView recyclerView; private RecyclerView.Adapter modeAdapter; private LinearLayoutManager layoutManager; @@ -57,7 +58,10 @@ public class MainActivity extends AppCompatActivity { private void setRecyclerData(List data) { data.add("Mode 1"); - data.add("Mode 2"); + for (int i = 2; i < 10; i++) { + data.add("Mode " + i); + } + data.add("Mode 1337"); } diff --git a/app/src/main/java/com/janasroboter/ModeListAdapter.java b/app/src/main/java/com/janasroboter/ModeListAdapter.java index 45d2bf2..1406fc5 100644 --- a/app/src/main/java/com/janasroboter/ModeListAdapter.java +++ b/app/src/main/java/com/janasroboter/ModeListAdapter.java @@ -4,10 +4,12 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import java.io.IOException; import java.util.List; public class ModeListAdapter extends RecyclerView.Adapter { @@ -39,10 +41,32 @@ public class ModeListAdapter extends RecyclerView.Adapter