Aplikacja działa nieprawidłowo

0

Witam,

ostatnio zacząłem naukę pisania programów na android. Piszę na smartfonie w IDE o nazwie AIDE i mam kłopot z działaniem aplikacji - z założenia powinna po wpisaniu tekstu w pole tekstowe i kliknięciu przycisku, otworzyć nową aktywność z napisem o treści tego co wpisałem. Wszystko gra tylko zamiast pokazywania tego co wpisałem, wypisuje domyślny tekst. Nie wiem czy zrobiłem błąd w intencji czy coś w pliku XML namieszałem. Zamieszczam cały projekt w załączniku. Czy ktoś potrafi pomóc?

Pozdrawiam!

PS. Projekt jest zgodny z eclipse i na odwrót.

0

A więc tak, oto zawartości plików z kodem i plików XML:

MainActivity.java:

package com.rsc.apka001;

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.content.Intent;

public class MainActivity extends Activity
{
	public final static String EXTRA_MESSAGE="com.rsc.apka001";
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
	{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
	
	public void sendMessage(View widok)
	{
		Intent intencja = new Intent (this, DisplayMessageActivity.class);
		EditText poleTxt = (EditText) findViewById(R.id.edit_message);
		String wiadomosc = poleTxt.getText().toString();
		intencja.putExtra(EXTRA_MESSAGE, wiadomosc);
		startActivity(intencja);
	}
} 

DisplayMessageActivity.java:

package com.rsc.apka001;
import android.os.*;
import android.app.*;
import android.content.Intent;
import android.view.*;
import android.widget.*;

public class DisplayMessageActivity extends Activity
{
	@Override
	public void onCreate (Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		//pobieranie wiadomosci od intencji
		Intent intencja = getIntent();
		String wiadomosc = intencja.getStringExtra(MainActivity.EXTRA_MESSAGE);
		
		//tworzenie widoku text (takiego jak label w delphi)
		TextView poleLabel = new TextView (this);
		poleLabel.setTextSize(40);//pewnie rozmiar
		poleLabel.setText(wiadomosc);
		
		//ustaw pole tekstowe (label) jako layout aktywnosci (formy)
		setContentView(R.layout.nowy);
	}
} 

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.rsc.apka001"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk 
        android:minSdkVersion="8" 
        android:targetSdkVersion="21" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:label="@string/app_name"
            android:name=".MainActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
		<activity
			android:label="@string/tytul_DMA"
			android:name=".DisplayMessageActivity">
		<meta-data
			android:name="android.support.PARENT_ACTIVITY"
			android:value="com.rsc.apka001.MainActivity"/>
		</activity>
    </application>

</manifest>

main.xml (layout):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="horizontal" >

    <EditText
		android:id="@+id/edit_message"
        android:layout_width="0dp"
		android:layout_weight="1"
        android:layout_height="wrap_content"
        android:hint="@string/poleTxt" 
	/>
    
	<Button
		android:text="@string/buttonSend"
		android:layout_width="wrap_content"
        android:layout_height="wrap_content"
		android:onClick="sendMessage"
	/>

</LinearLayout>

nowy.xml (layout):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
	
	<TextView
		android:id="@+id/label"
		android:layout_height = "wrap_content"
		android:layout_width = "wrap_content"
		android:text = "Domyslny!"
		/>
    
</LinearLayout> 

strings.xml (values):

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="poleTxt">Apka001!</string>
    <string name="app_name">apka001_name</string>
	<string name="buttonSend">Wyslij</string>
	
	<string name="tytul_DMA">Druga forma</string>
	<string name="napisLabel">a takie cos</string>

</resources>
0
//tworzenie widoku text (takiego jak label w delphi)
TextView poleLabel = new TextView (this);
poleLabel.setTextSize(40);//pewnie rozmiar
poleLabel.setText(wiadomosc);
 
//ustaw pole tekstowe (label) jako layout aktywnosci (formy)
setContentView(R.layout.nowy);

Po pierwsze, setContentView(R.layout.nowy); wywołaj zaraz po super.onCreate();
Po drugie, tworzysz nowy TextView o nazwie PoleLabel, który nie należy do layoutu, więc go nie wyświetlasz.

Odwołaj się do TextView który istnieje w layoucie:

TextView poleLabel = (TextView) findViewById(R.id.label);
poleLabel.setTextSize(40);//pewnie rozmiar
poleLabel.setText(wiadomosc);
 
0

Dziękuję Ci serdecznie, @bolson!:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1