Autore Topic: Output video dati passati tra activity  (Letto 526 volte)

Offline ziocooky

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy GT-I8190
  • Sistema operativo:
    Ubuntu 12.04 LTS
Output video dati passati tra activity
« il: 06 Luglio 2014, 13:37:14 CEST »
0
Salve a tutti,
mi presento, sono nuovo del Forum e pure del mondo della progettazione di app Android. Sto scrivendo una simpatica e molto semplice app utilizzando l'ADT.
Essenzialmente l'app consiste  di due activity, una principale e una secondaria che viene richiamata premendo un pulsante nell'activity principale. Alla pressione del pulsante, tramite un intent passo una stringa, pescata casualmente da un array dichiarato nell'activity principale, ad un'activity secondaria. E qui vorrei semplicemente visualizzare questa stringa. Per il passaggio di dati tramite intent non ho riscontrato alcun problema. Il problema mi si presenta quando voglio visualizzare in output video tale stringa. Cosa mi consigliate di fare? Ho cercato nell'web informazioni, sul sito inglese di sviluppatori ho trovato una guida alla creazione di fragment, ma mi sembra qualcosa di eccessivo per ciò che voglio fare io a questo livello base, anche qui nel forum ho trovato informazioni interessanti sulla creazione dei fragment e per la gestione multipla di questi all'interno di un'unica activity. Vorrei, se possibile, fare qualcosa di più semplice. Spero di non tediarvi eccessivamente con questo post in quanto ho visto che affrontate questioni piuttosto avanzate. Mi basta anche solo qualche link di riferimento.
Vi ringrazio.
  :-)

Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Output video dati passati tra activity
« Risposta #1 il: 06 Luglio 2014, 15:32:12 CEST »
0
Ciao ziocooky,
Se ho capito bene hai bisogno di visualizzare una stringa sullo schermo. Supponiamo sia str la stringa in questione:

Crea un file output_layout.xml nella sottodirectory /res/layout del progetto con il seguente contenuto:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:orientation="vertical"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
       >

    <TextView
           android:id="@+id/tw_output"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           />
</LinearLayout>

Nell'onCreate della seconda Activity:
Codice (Java): [Seleziona]
setContentView(R.layout.output_layout);
TextView tw=(TextView)findViewById(R.id.tw_output);
tw.setText(str); //Suppongo str sia già stata prelevata

Ovviamente è solo un codice di esempio, puoi modificare a tuo piacimento la disposizione o l'aspetto della TextView nel Layout
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline ziocooky

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy GT-I8190
  • Sistema operativo:
    Ubuntu 12.04 LTS
Re:Output video dati passati tra activity
« Risposta #2 il: 07 Luglio 2014, 22:55:27 CEST »
0
Grazie mille. Sei stato molto gentile, appena ho un attimo di tempo provo a fare come mi dici e poi scrivo qui il risultato.
Buona serata!

Offline ziocooky

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy GT-I8190
  • Sistema operativo:
    Ubuntu 12.04 LTS
Re:Output video dati passati tra activity
« Risposta #3 il: 13 Luglio 2014, 11:38:47 CEST »
0
Ciao vincenzoc,
ho provato a fare come dici tu, che tra l'altro è simile a quanto avevo già provato io, tuttavia anche in questo caso l'app quando la lancio si blocca. Visto che si blocca solo quando tento di dare in output la stringa pensavo che il problema fosse proprio il codice di output. Ma a questo punto forse il problema sta in altro. Di seguito ti ho scritto il codice molto semplice tramite il quale effettuo il passaggio della stringa da un activity all'altra e il codice per l'output. Saresti cosi gentile da dirmi se è corretto?

Nella funzione public void push(View view) della main_activity (che si attiva quando premo un bottone) scrivo:
//inizializzazione array di frasi

int dim_Frasi = 2;
String[] Frasi = new String[dim_Frasi];
Frasi[0] = "ciao uno";
Frasi[1] = "ciao due";
int num_scelta = (int) (Math.random() * (dim_Frasi-1));
            
Intent passa = new Intent(MainActivity.this, DisplayMessageActivity.class);
String pkg = getPackageName();
passa.putExtra(pkg+".myString", Frasi[num_scelta]);
startActivity(passa);


Nell'onCreate della seconda activity:

setContentView(R.layout.output_layout);
   
Intent passa_frase = getIntent();
String pkg = getPackageName();
String test = passa_frase.getStringExtra(pkg+".myString");

TextView tw = (TextView)findViewById(R.id.tw_output);
tw.setText(test);


Ecco tutto.
Nuovamente grazie della pazienza.

Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Output video dati passati tra activity
« Risposta #4 il: 13 Luglio 2014, 11:59:16 CEST »
0
Posta il logcat con l'errore così vediamo subito cosa non va  :-)
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline ziocooky

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy GT-I8190
  • Sistema operativo:
    Ubuntu 12.04 LTS
Re:Output video dati passati tra activity
« Risposta #5 il: 14 Luglio 2014, 15:21:59 CEST »
0
Ciao vincenzoc,
Eccoti il logcat:

07-14 15:04:51.499: W/dalvikvm(10064): threadid=1: thread exiting with uncaught exception (group=0x4117f2a0)
07-14 15:04:51.539: E/AndroidRuntime(10064): FATAL EXCEPTION: main
07-14 15:04:51.539: E/AndroidRuntime(10064): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bea.wordsoflove/com.bea.wordsoflove.DisplayMessageActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f080000 for fragment PlaceholderFragment{41bd9c58 #0 id=0x7f080000}
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2092)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.app.ActivityThread.access$700(ActivityThread.java:134)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.os.Looper.loop(Looper.java:137)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.app.ActivityThread.main(ActivityThread.java:4867)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at java.lang.reflect.Method.invokeNative(Native Method)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at java.lang.reflect.Method.invoke(Method.java:511)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at dalvik.system.NativeStart.main(Native Method)
07-14 15:04:51.539: E/AndroidRuntime(10064): Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f080000 for fragment PlaceholderFragment{41bd9c58 #0 id=0x7f080000}
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:823)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.app.BackStackRecord.run(BackStackRecord.java:635)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1399)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.app.Activity.performStart(Activity.java:5056)
07-14 15:04:51.539: E/AndroidRuntime(10064):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2065)
07-14 15:04:51.539: E/AndroidRuntime(10064):    ... 11 more
07-14 15:05:01.270: I/Process(10064): Sending signal. PID: 10064 SIG: 9

Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Output video dati passati tra activity
« Risposta #6 il: 15 Luglio 2014, 11:26:56 CEST »
0
Stai usando i Fragment? Sei in una FragmentActivity?
Puoi mostrare il codice dell'Activity?
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline ziocooky

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy GT-I8190
  • Sistema operativo:
    Ubuntu 12.04 LTS
Re:Output video dati passati tra activity
« Risposta #7 il: 15 Luglio 2014, 11:53:13 CEST »
0
Ciao, adesso ti allego il codice dell'activity:

Codice (Java): [Seleziona]
package com.bea.wordsoflove;

import android.app.Activity;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class DisplayMessageActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.output_layout);
               
                Intent passa_frase = getIntent();
                String pkg = getPackageName();
                String test = passa_frase.getStringExtra(pkg+".myString");
               
                TextView tw = (TextView)findViewById(R.id.tw_output);
                tw.setText(test);
               
           
                if (savedInstanceState == null) {
                        getFragmentManager().beginTransaction()
                                        .add(R.id.container, new PlaceholderFragment()).commit();
                }
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {

               
                getMenuInflater().inflate(R.menu.display_message, menu);
                return true;
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
               
                int id = item.getItemId();
                if (id == R.id.action_settings) {
                        return true;
                }
                return super.onOptionsItemSelected(item);
        }

        /**
         * A placeholder fragment containing a simple view.
         */

        public static class PlaceholderFragment extends Fragment {

                public PlaceholderFragment() {
                }

                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                Bundle savedInstanceState) {
                        View rootView = inflater.inflate(R.layout.fragment_display_message,
                                        container, false);
                        return rootView;
                }
        }

}


Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Output video dati passati tra activity
« Risposta #8 il: 15 Luglio 2014, 12:04:27 CEST »
+1
La classe PlaceholderFragment non la stai usando vero? Elimina quell'intera classe e la porzione di codice
Codice (Java): [Seleziona]
if (savedInstanceState == null) {
           getFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();
}
dall'onCreate
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline ziocooky

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy GT-I8190
  • Sistema operativo:
    Ubuntu 12.04 LTS
Re:Output video dati passati tra activity
« Risposta #9 il: 15 Luglio 2014, 12:32:21 CEST »
0
Ok ora provo. Comunque da quanto so, no, non la sto usando.


Post unito: 15 Luglio 2014, 13:52:08 CEST
Grazie mille! Risolto il problema!
« Ultima modifica: 15 Luglio 2014, 13:52:08 CEST da ziocooky, Reason: Merged DoublePost »