implemented ListView

This commit is contained in:
Philipp Wo 2019-03-08 20:05:22 +01:00
parent 826964792d
commit 6537d97d8a
8 changed files with 83 additions and 18 deletions

View File

@ -4,7 +4,7 @@ public class Location {
private String location; private String location;
private String city; private String city;
private String county: private String county;
public Location(String location, String city, String county) { public Location(String location, String city, String county) {

View File

@ -5,27 +5,43 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.design.widget.BottomNavigationView; import android.support.design.widget.BottomNavigationView;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.MenuItem; import android.view.MenuItem;
import android.widget.TextView; import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import at.fhj.airkoality.R; import at.fhj.airkoality.R;
import at.fhj.airkoality.model.Location;
import at.fhj.airkoality.ui.adapter.LocationListAdapter;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
private TextView tvTest; private RecyclerView locationList;
private BottomNavigationView bottomNavigationView;
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); setContentView(R.layout.activity_main);
tvTest = findViewById(R.id.tvTest);
bottomNavigationView = findViewById(R.id.bnvMain);
bottomNavigationView.setOnNavigationItemSelectedListener(menuItem -> { locationList = findViewById(R.id.rvLocationList);
tvTest.setText(menuItem.getTitle()); List<Location> locations = new ArrayList<>();
return true;
}); locations.add(new Location("Daheim", "Graz" , "Österreich"));
locations.add(new Location("Daheim2", "Graz" , "Österreich"));
locations.add(new Location("Daheim3", "Graz" , "Österreich"));
locations.add(new Location("Daheim4", "Graz" , "Österreich"));
locations.add(new Location("Daheim5", "Graz" , "Österreich"));
locations.add(new Location("Daheim6", "Graz" , "Österreich"));
locations.add(new Location("Daheim7", "Graz" , "Österreich"));
locations.add(new Location("Daheim8", "Graz" , "Österreich"));
LocationListAdapter adapter = new LocationListAdapter(locations);
locationList.setAdapter(adapter);
locationList.setLayoutManager(new LinearLayoutManager(this));
} }

View File

@ -27,7 +27,7 @@ public class SplashActivity extends AppCompatActivity {
startActivity(intent); startActivity(intent);
} }
},5000); },3000);

View File

@ -1,18 +1,24 @@
package at.fhj.airkoality.ui.adapter; package at.fhj.airkoality.ui.adapter;
import android.content.Context;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List; import java.util.List;
import at.fhj.airkoality.R;
import at.fhj.airkoality.model.Location; import at.fhj.airkoality.model.Location;
public class LocationListAdapter extends RecyclerView.Adapter<LocationListAdapter.LocationItemViewHolder> { public class LocationListAdapter extends RecyclerView.Adapter<LocationListAdapter.LocationItemViewHolder> {
private List<Location> locations; private List<Location> locations;
public LocationListAdapter(List<Location> locations){ public LocationListAdapter(List<Location> locations){
this.locations = locations; this.locations = locations;
} }
@ -21,11 +27,19 @@ public class LocationListAdapter extends RecyclerView.Adapter<LocationListAdapte
@NonNull @NonNull
@Override @Override
public LocationItemViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { public LocationItemViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
return null; View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.location_list_item,viewGroup,false);
return new LocationItemViewHolder(view);
} }
@Override @Override
public void onBindViewHolder(@NonNull LocationItemViewHolder locationItemViewHolder, int i) { public void onBindViewHolder(@NonNull LocationItemViewHolder locationItemViewHolder, int position) {
Context context = locationItemViewHolder.tvLocation.getContext();
locationItemViewHolder.tvLocation.setText(context.getString(R.string.location_label) + " " + locations.get(position).getLocation());
locationItemViewHolder.tvCity.setText(context.getString(R.string.city_label) + " " + locations.get(position).getLocation());
locationItemViewHolder.tvCountry.setText(context.getString(R.string.country_label) + " " + locations.get(position).getLocation());
} }
@ -35,8 +49,21 @@ public class LocationListAdapter extends RecyclerView.Adapter<LocationListAdapte
} }
class LocationItemViewHolder extends RecyclerView.ViewHolder{ class LocationItemViewHolder extends RecyclerView.ViewHolder{
CardView cvLocationItem;
TextView tvLocation;
TextView tvCity;
TextView tvCountry;
public LocationItemViewHolder(@NonNull View itemView){ public LocationItemViewHolder(@NonNull View itemView){
super(itemView); super(itemView);
cvLocationItem = itemView.findViewById(R.id.cvLocationItem);
tvLocation = itemView.findViewById(R.id.tvlocation);
tvCity = itemView.findViewById(R.id.tvCity);
tvCountry = itemView.findViewById(R.id.tvCountry);
} }
} }
} }

View File

@ -4,12 +4,14 @@
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<TextView
<!--<TextView
android:id="@+id/tvTest" android:id="@+id/tvTest"
android:text="Hallo Welt" android:text="Hallo Welt"
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />-->
<android.support.design.widget.BottomNavigationView <android.support.design.widget.BottomNavigationView
android:id="@+id/bnvMain" android:id="@+id/bnvMain"
@ -25,5 +27,12 @@
</android.support.design.widget.BottomNavigationView> </android.support.design.widget.BottomNavigationView>
<android.support.v7.widget.RecyclerView
android:id="@+id/rvLocationList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/bnvMain"
></android.support.v7.widget.RecyclerView>
</RelativeLayout> </RelativeLayout>

View File

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent" android:orientation="vertical"
android:layout_width="match_parent"
android:id="@+id/cvLocationItem" android:id="@+id/cvLocationItem"
android:layout_height="match_parent"> android:layout_margin="5dp"
android:layout_height="wrap_content">
<LinearLayout <LinearLayout
@ -11,17 +13,21 @@
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:textSize="25sp"
android:padding="10dp"
android:id="@+id/tvlocation" android:id="@+id/tvlocation"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
<TextView <TextView
android:padding="10dp"
android:id="@+id/tvCity" android:id="@+id/tvCity"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
<TextView <TextView
android:id="@+id/tcCountry" android:padding="10dp"
android:id="@+id/tvCountry"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />

View File

@ -3,4 +3,7 @@
<string name="location">Location</string> <string name="location">Location</string>
<string name="map">Map</string> <string name="map">Map</string>
<string name="airkoality">AirKoality</string> <string name="airkoality">AirKoality</string>
<string name="location_label">Location:</string>
<string name="city_label">City:</string>
<string name="country_label">Country:</string>
</resources> </resources>

View File

@ -31,7 +31,7 @@
- Hinzufügen der Activities in der AndroidManifest.xml Datei - Hinzufügen der Activities in der AndroidManifest.xml Datei
- strings.xml kennengelernt um Texte einer App zentral verwalten zu können - strings.xml kennengelernt um Texte einer App zentral verwalten zu können
## 08.03.2019 ## 08.03.2019 - Lab 3
Context -> weiß was in der App gerade "abgeht" (Java Objekt) Context -> weiß was in der App gerade "abgeht" (Java Objekt)
- Activity oder Application - Activity oder Application
@ -39,4 +39,8 @@ Context -> weiß was in der App gerade "abgeht" (Java Objekt)
Best Practise kennengelernt um große Listen darzustellen Best Practise kennengelernt um große Listen darzustellen
Liste bekommt einen Adapter und stellt dann nur Listenelemente dar, die gerade am Bildschrim angezeigt werden.
Card View Layout ausprobiert
Fragments -> Fragments ->