Czy ktoś może mi powiedzieć, jak dokładnie używać getExtra()
i putExtra()
do celów? Właściwie mam zmienną łańcuchową, powiedzmy str, która przechowuje niektóre dane łańcuchowe. Teraz chcę wysłać te dane z jednego działania do drugiego.
Intent i = new Intent(FirstScreen.this, SecondScreen.class);
String keyIdentifer = null;
i.putExtra(strName, keyIdentifer );
a następnie w SecondScreen.java
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.table);
TextView userName = (TextView)findViewById(R.id.userName);
Bundle bundle = getIntent().getExtras();
if(bundle.getString("strName")!= null)
{
//TODO here get the string stored in the string variable and do
// setText() on userName
}
}
Wiem, że to bardzo podstawowe pytanie, ale niestety utknąłem tutaj. Proszę pomóż.
Dzięki,
Edycja: Tutaj ciąg, który próbuję przekazać z jednego ekranu na drugi, jest dynamiczny. To znaczy, że mam editText, w którym otrzymuję ciąg niezależnie od typu użytkownika. Następnie z pomocą myEditText.getText().toString()
. Otrzymuję wprowadzoną wartość jako ciąg, a następnie muszę przekazać te dane.
android
android-intent
Shaista Naaz
źródło
źródło
Odpowiedzi:
Użyj tego, aby „umieścić” plik ...
Następnie, aby pobrać wartość, spróbuj czegoś takiego:
źródło
this.getActivity().getIntent().getExtras()
.pierwszy Screen.java
Drugi Screen.java
źródło
Najlepsza metoda ...
SendingActivity
RecievingActivity
/// najkrótszy sposób na uzyskanie danych ..
// Wymaga interfejsu API 12. // drugi parametr jest opcjonalny. Jeśli nazwa_klucza jest pusta, użyj
defaultkey
danych jako.źródło
To jest to, z czego korzystam, mam nadzieję, że pomaga komuś .. prosty i uczuciowy.
Wyślij dane
otrzymać dane
Twoje zdrowie!
źródło
Jest bardzo łatwy do wdrożenia
intent
w Androidzie .. Przeniesienie z jednej aktywności do innej aktywności, mamy dwie metody,putExtra();
agetExtra();
teraz pokazuję wam przykład ..Teraz musimy uzyskać wartość z
AnyKeyName
parametru, pomoże w tym poniższy kodMożemy łatwo ustawić wartość odbiorczą z
Intent
dowolnego miejsca.źródło
Mały dodatek: nie musisz tworzyć własnej nazwy dla klucza, android zapewnia je, np.
Intent.EXTRA_TEXT
. Modyfikacja zaakceptowanej odpowiedzi:źródło
ApplicationActivity
źródło
Aktualizacja w klasie Intent .
hasExtra()
do sprawdzania, czy zamiar ma dane na kluczu.getStringExtra()
bezpośrednio.Przekaż dane
Otrzymać dane
Zawsze umieszczaj klucze w stałych jako najlepszą praktykę.
źródło
PutExtraConstants
interfejs?PutExtraConstants
klasa zawiera tylko stałe (public
,static
,final
). Dlatego lepiej jest używać interfejsu dla stałych.Prościej
strona nadawcy
strona odbiornika
źródło
Umieść ciąg w obiekcie docelowym
NextAcitvity w metodzie onCreate otrzymuje String
to łatwa i krótka metoda
źródło
wysłać
dostać
źródło
funkcja wprowadzania
źródło
Dane push
Powyższy kod może znajdować się w głównym
activity
. „MyActivity.class
” to sekunda,Activity
którą chcemy uruchomić; musi być wyraźnie dołączony do twojegoAndroidManifest.xml
pliku.Wyciągnij dane
W tym przykładzie powyższy kod będzie w twoim
MyActivity.java
pliku.Gotchas
Ta metoda może tylko przejść
strings
. Powiedzmy, że musisz przekazaćArrayList
swojemuListActivity
; możliwym obejściem jest przekazanie ciągu rozdzielanego przecinkami, a następnie podzielenie go na drugą stronę.Alternatywne rozwiązania
Posługiwać się
SharedPreferences
źródło
Proste, w pierwszej aktywności
W drugim ćwiczeniu
źródło
Na FirstScreen.java
Na SecondScreen.java
źródło
umieść ciąg na pierwszym miejscu
odzyskaj to potem
to wszystko ;)
źródło
Możesz po prostu użyć zmiennej statycznej, aby zapisać ciąg tekstu edittext, a następnie użyć tej zmiennej w innej klasie. Mam nadzieję, że to rozwiąże twój problem
źródło