• 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

0 głosów
66 wizyt
pytanie zadane 10 marca w Android, Swift, Symbian przez matir85 Bywalec (2,100 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 przez KubenQPL Maniak (59,340 p.)
wybrane 12 marca 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 przez matir85 Bywalec (2,100 p.)
Dzięki za pomoc, mój głupi błąd. Jesteś wielki.

Podobne pytania

0 głosów
1 odpowiedź 72 wizyt
0 głosów
1 odpowiedź 362 wizyt
0 głosów
1 odpowiedź 80 wizyt
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

65,640 zapytań

112,265 odpowiedzi

236,876 komentarzy

46,639 pasjonatów

Przeglądających: 238
Pasjonatów: 10 Gości: 228

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...