• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przykład z książki "Rusz Głową - Android" nie działa

Object Storage Arubacloud
0 głosów
177 wizyt
pytanie zadane 10 marca 2019 w Android, Swift, Symbian przez matir85 Bywalec (2,410 p.)

Witam.

Jestem podczas przerabiania książki android rusz głową wyd II. W trzecim rozdziale dot. przesyłania tekstu pomiędzy aktywnościami podany przykład w książce nie działa pomimo, że android studio nie zgłasza błędu. 

Mój kod:

Aktwność 1 Java

package hfad.com;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class CreateMessageActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.create_message_activity);
    }

    public void onSendMessage(View view){
        EditText messageView = (EditText) findViewById(R.id.message);
        String messageText = messageView.getText().toString();
        Intent intent = new Intent(this, ReciveMessage.class);
        intent.putExtra(ReciveMessage.EXTRA_MESSAGE, messageText);
        startActivity(intent);
    }
}

Aktywność 1 XML

<?xml version="1.0" encoding="utf-8"?>
<android.widget.LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".CreateMessageActivity"
    android:orientation="vertical"
    android:padding="16dp">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/message"
        android:layout_marginTop="20dp"
        android:hint="@string/hint"
        android:ems="10"
        android:autofillHints="" tools:targetApi="o"
        android:inputType="" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/send"
        android:layout_marginTop="20dp"
        android:onClick="onSendMessage"
        android:text="@string/send"/>



</android.widget.LinearLayout>

Aktywność 2 Java

package hfad.com;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class ReciveMessage extends Activity {

    public static final String EXTRA_MESSAGE = "message";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recive_message);

        Intent intent = getIntent();
        String messageText = intent.getStringExtra("EXTRA_MESSAGE");
        TextView messageView = (TextView) findViewById(R.id.message);
        messageView.setText(messageText);
    }
}

Aktywność 2 XML

<?xml version="1.0" encoding="utf-8"?>
<android.widget.LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="ReciveMessage">

    <TextView
        android:id="@+id/message"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:textColor="@android:color/background_dark"
        android:textSize="24sp" />

</android.widget.LinearLayout>

plik strings.XML

<resources>
    <string name="app_name">Komunikator</string>
    <string name="hint">Wpisz wiadomość</string>
    <string name="send">Wyślij</string>
</resources>

Czy mógł by mi ktoś wskazać gdzie popełniłem błąd, gdyż przekazany tekst nie wyświetla się w drugiej aktywności. Za pomoc z góry dzieki.

1 odpowiedź

+1 głos
odpowiedź 11 marca 2019 przez KubenQPL Maniak (62,820 p.)
wybrane 12 marca 2019 przez matir85
 
Najlepsza
Wywołując putExtra jako klucz dajesz stałą ReciveMessage.EXTRA_MESSAGE która ma wartość "message", a pobierając dane z intentu jako klucz podajesz "EXTRA_MESSAGE" zamiast po prostu stałem EXTRA_MESSAGE
komentarz 12 marca 2019 przez matir85 Bywalec (2,410 p.)
Dzięki za pomoc, mój głupi błąd. Jesteś wielki.

Podobne pytania

0 głosów
1 odpowiedź 172 wizyt
0 głosów
1 odpowiedź 561 wizyt
pytanie zadane 21 maja 2017 w C# przez szafran98 Początkujący (460 p.)
0 głosów
1 odpowiedź 294 wizyt
pytanie zadane 12 lutego 2022 w Java przez dwagrosze Nowicjusz (120 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...