388
Rozdział 9.
Implementacja interfejsu Listener
MainActivity.java
Trenazer
java
com.hfad.trenazer
app/src/main
package com.hfad.workout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.content.Intent;
public class MainActivity extends AppCompatActivity
implements WorkoutListFragment.Listener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onShowDetails(View view) {
Intent intent = new Intent(this, DetailActivity.class);
startActivity(intent);
}
@Override
public void itemClicked(long id) {
Intent intent = new Intent(this, DetailActivity.class);
intent.putExtra(DetailActivity.EXTRA_WORKOUT_ID, (int)id);
startActivity(intent);
}
}
Aktywność MainActivity musi implementować interfejs
Kolejnym zadaniem, które musimy wykonać, jest zaimplementowanie utworzonego przed chwilą
interfejsu
Listener
w klasie
MainActivity
. Interfejs ten deklaruje metodę
itemClicked()
,
dlatego też zaimplementujemy tę metodę i zadbamy o to, by uruchamiała ona aktywność
DetailActivity
i przekazywała do niej identyfikator treningu wybranego przez użytkownika.
Poniżej przedstawiliśmy kompletny kod pliku
MainActivity.java. Zaktualizuj swoją wersję tego pliku,
by była identyczna z naszą.
Implementujemy interfejs Listener
zdefiniowany w klasie WorkoutListFragment.
To jest metoda, która była wykonywana
po kliknięciu przycisku wyświetlanego w
aktywności MainActivity. Usunęliśmy przycisk,
więc metoda ta nie jest już dłużej potrzebna.
Ta metoda jest definiowana
przez interfejs, więc musimy ją
zaimplementować.
Przekazujemy identyfikator treningu do
aktywności DetailActivity. EXTRA_WORKOUT_ID
to nazwa stałej, którą zdefiniujemy w klasie
DetailActivity.
I to są wszystkie zmiany, które musimy wprowadzić w kodzie aktywności
MainActivity
.
Jest jeszcze jedna zmiana, którą musimy wprowadzić w kodzie aplikacji.
Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.