494
Rozdział 12.
Kod aktywności MainActivity
¨
Dodanie fragmentów
¨
Dodanie przeciągania
¨
Dodanie kart
package com.hfad.wloskieconieco;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.content.Intent;
import android.support.v7.widget.ShareActionProvider;
import android.support.v4.view.MenuItemCompat;
import android.support.v4.view.ViewPager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class MainActivity extends AppCompatActivity {
private ShareActionProvider shareActionProvider;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// dołączamy adapter SectionsPagerAdapter do kontrolki ViewPager
SectionsPagerAdapter pagerAdapter =
new SectionsPagerAdapter(getSupportFragmentManager());
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(pagerAdapter);
}
app/src/main
MainActivity.java
WloskieCoNieco
java
com.hfad.wloskieconieco
Kolejna część kodu
znajduje się na
następnej stronie.
Używamy tych dodatkowych klas,
więc musimy je zaimportować.
To wywołania dołącza adapter FragmentPagerAdapter
do kontrolki ViewPager.
Pełny kod pliku MainActivity.java
Poniżej zamieściliśmy kompletny kod pliku MainActivity.java. Zaktualizuj swoją wersję
tego pliku, by była identyczna z naszą (zmiany zostały wyróżnione pogrubioną czcionką):
Biblioteka wsparcia wzornictwa
495
jesteś tutaj
¨
Dodanie fragmentów
¨
Dodanie przeciągania
¨
Dodanie kart
¨
Dodanie fragmentów
¨
Dodanie przeciągania
¨
Dodanie kart
app/src/main
MainActivity.java
WloskieCoNieco
java
com.hfad.wloskieconieco
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem menuItem = menu.findItem(R.id.action_share);
shareActionProvider =
(ShareActionProvider) MenuItemCompat.getActionProvider(menuItem);
setShareActionIntent(”Umówimy się na pizzę?”);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_create_order:
Intent intent = new Intent(this, OrderActivity.class);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void setShareActionIntent(String text) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType(”text/plain”);
intent.putExtra(Intent.EXTRA_TEXT, text);
shareActionProvider.setShareIntent(intent);
}
Żadne kody przedstawione
na tej stronie nie uległy
zmianie.
Pozostała część
kodu znajduje
się na następnej
stronie.
Kod pliku MainActivity.java (ciąg dalszy)
496
Rozdział 12.
Kodu ciąg dalszy
private class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return 4;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new TopFragment();
case 1:
return new PizzaFragment();
case 2:
return new PastaFragment();
case 3:
return new StoresFragment();
}
return null;
}
}
}
app/src/main
MainActivity.java
WloskieCoNieco
java
com.hfad.wloskieconieco
Skoro już zmodyfikowaliśmy kod aktywności
MainActivity
,
możemy wziąć naszą aplikację na małą jazdę próbną —
zobaczymy, co się stanie.
Adapter FragmentPagerAdapter przekazuje
informacje kontrolce ViewPager.
Ta metoda zwraca informację
o tym, ile stron powinna
udostępniać kontrolka ViewPager.
Ta metoda określa
fragmenty, które powinny
być wyświetlane na
poszczególnych stronach.
¨
Dodanie fragmentów
¨
Dodanie przeciągania
¨
Dodanie kart
Kod pliku MainActivity.java (ciąg dalszy)
Biblioteka wsparcia wzornictwa
497
jesteś tutaj
¨
Dodanie fragmentów
¨
Dodanie przeciągania
¨
Dodanie kart
¨
Dodanie fragmentów
¨
Dodanie przeciągania
¨
Dodanie kart
Podczas przeciągania
kontrolki ViewPager
poszczególne fragmenty
są wyświetlane dokładnie
w takiej kolejności.
Teraz, kiedy możemy się już poruszać pomiędzy fragmentami
wyświetlanymi w aktywności
MainActivity
przy użyciu gestu
przeciągania, zajmiemy się dodaniem kart.
To jest fragment
TopFragment.
Jest on wyświetlany
jako pierwszy.
Drugi w kolejności
jest fragment
PizzaFragment…
…a następny PastaFragment.
Ostatni jest
StoresFragment.
Kontrolka ViewPager
nie udostępnia już
żadnych dalszych
stron.
Jazda próbna aplikacji
Po uruchomieniu aplikacji zostaje wyświetlony fragment
TopFragment
.
Kiedy będziemy przeciągać ekran w lewo, zostanie na nim wyświetlony fragment
PizzaFragment
, a następnie
PastaFragment
i w końcu
StoresFragment
. Kiedy
zaczniemy przeciągać ekran w przeciwnym kierunku, zaczynając od widocznego
fragmentu
StoresFragment
, kolejno będą wyświetlane fragmenty:
PastaFragment
,
PizzaFragment
oraz
TopFragment
.
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.